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. Sep 29, 2009
    • Max Howell's avatar
      If brew create can't figure out the name, prompt for it · 14818039
      Max Howell authored
      This was adapted from adamv@d5e78ee26535dec4b11c33d14832a9ee945a29fd
      
      I decided prompting would was the most usable solution here, as the stem is
      unlikely to be useful so the user would have to rename the file and change
      the class name as well as type the command once and then again with --force.
      
      Dissent welcome.
      
      Fixes Homebrew/homebrew#15
      14818039
  2. Sep 28, 2009
  3. Sep 25, 2009
  4. Sep 22, 2009
    • Max Howell's avatar
      Clean up the empty dir cleaner a little · e60ea7bd
      Max Howell authored
      Using more Pathname methods.
      
      Only show text if verbose mode is on, as is typical for the rest of our install output.
      
      TODO: would be nice if we knew you were a dev and automatically enabled verbose mode perhaps.
      e60ea7bd
    • Adam Vandenberg's avatar
      Replace perl one-liner for removing empty dirs with Ruby. · 50b981a4
      Adam Vandenberg authored
      Allow Formula.skip_clean? to prevent empty folders from being removed
      as part of the brewing cleanup process.
      50b981a4
    • Max Howell's avatar
      Dependency resolution with fancy syntax · 77dd27e8
      Max Howell authored
      Is it a DSL? No. But people call it that apparently.
      
      To add a dependency:
      
      class Doe <Formula
        depends_on 'ray'
        depends_on 'mee' => :optional
        depends_on 'far' => :recommended
        depends_on Sew.new
      end
      
      Sew would be a formula you have defined in this Formula file. This is useful,
      eg. see Python's formula. Formula specified in this fashion cannot be linked
      into the HOMEBREW_PREFIX, they are considered private libraries. This allows
      you to create custom installations that are very specific to your formula.
      
      More features to come, like specifying versions
      77dd27e8
  5. Sep 18, 2009
  6. Sep 16, 2009
    • Max Howell's avatar
      Allow formulae to use __END__ · c28bd7b5
      Max Howell authored
      For this to work the "running script" must be the formulae file. Making this
      so wasn't so hard, there is now an install.rb script which is included with
      the -r flag to the ruby executable. An at_exit handler calls the install
      function.
      
      Having the install logic in its own file made it feel like there was so much
      space that I added extra error handling. So there is something to be said for
      separating functionality out into its own files.
      
      Still the error handling sucks, we'll need to marshall the exception back to
      the bin/brew command. Which is another PITA.
      
      Still overall I think this will prove worthwhile. But if it doesn't we'll
      revert.
      
      As a first usage, you can put a diff after __END__ and return DATA from
      Formula::patches to make Homebrew aware of it.
      c28bd7b5
  7. Sep 12, 2009
  8. Sep 11, 2009
    • Max Howell's avatar
      Only allow --interactive with one formula argument · a793e304
      Max Howell authored
      See comments in commit for details.
      a793e304
    • Max Howell's avatar
      fdaa267f
    • Max Howell's avatar
      Dependency resolution · 0a31190f
      Max Howell authored
      Specify dependencies in your formula's deps function. You can return an Array,
      String or Hash, eg:
      
          def deps
            { :optional => 'libogg', :required => %w[flac sdl], :recommended => 'cmake' }
          end
      
      Note currently the Hash is flattened and qualifications are ignored. If you
      only return an Array or String, the qualification is assumed to be :required.
      
      Other packaging systems have problems when it comes to packages requiring a
      specific version of a package, or some patches that may not work well with
      other software. With Homebrew we have some options:
      
      1.  If the formula is vanilla but an older version we can cherry-pick the old
          version and install it in the Cellar in parallel, but just not symlink it
          into /usr/local while forcing the formula that depends on it to link to
          that one and not any other versions of it.
      2.  If the dependency requires patches then we shouldn't install this for use
          by any other tools, (I guess this needs to be decided on a per-situation
          basis). It can be installed into the parent formula's prefix, and not
          symlinked into /usr/local. In this case the dependency's Formula
          derivation should be saved in the parent formula's file (check git or
          flac for an example of this).
      
      Both the above can be done currently with hacks, so I'll flesh out a proper
      way sometime this week.
      0a31190f
  9. Sep 04, 2009
    • Max Howell's avatar
      Closes Homebrew/homebrew#27 (permissions to strict) · 18d9fbee
      Max Howell authored
      I went with 0555 as the permissions changing only occurs to bin, sbin and lib, so there shouldn't be any files in there for editing in general anyway.
      
      Formulae can specify not to "clean" any particular file by reimplementing the skip_clean? function, in case some config file or what not ends up in there.
      
      Also committing cosmetic fix to pretty_duration function.
      18d9fbee
  10. Sep 02, 2009
  11. Sep 01, 2009
  12. Aug 31, 2009
  13. Aug 24, 2009
  14. Aug 12, 2009
  15. Aug 11, 2009
    • Max Howell's avatar
      Allow skip_clean? to skip entire directories · 6661f786
      Max Howell authored
      Speeds up Python formula plenty in clean phase
      6661f786
    • Max Howell's avatar
      Install README.txt etc. as README · 0ea078e1
      Max Howell authored
      0ea078e1
    • Max Howell's avatar
      Ensure ENV is pristine for each installation · f724f5ed
      Max Howell authored
      Because we modified the ENV global each install this propagated to consecutive
      formulae. So exec a new brew process each install. This is the safest way
      although Ruby exceptions don't propagate to the parent process so I worry
      about it somewhat.
      f724f5ed
    • Max Howell's avatar
      When safe, correct common install issues · a6577e51
      Max Howell authored
      Eg. man can be moved into share without consequences
      a6577e51
    • Max Howell's avatar
      Delete installed documentation after install · a84bf775
      Max Howell authored
      Documentation is all online nowadays, and is more current there.
      
      Documentation often takes up more space than the rest of the package.
      
      Package listings are now more relevent.
      
      We'll make it optional as soon as one person complains.
      a84bf775
    • Max Howell's avatar
      Refactor · 760c083c
      Max Howell authored
      Large refactor to Formula, mostly improving reliability and error handling but
      also layout and readability.
      
      General improvements so testing can be more complete.
      
      Patches are automatically downloaded and applied for Formula that return a
      list of urls from Formula::patches.
      
      Split out the brew command logic to facilitate testing.
      
      Facility from Adam Vandenberg to allow selective cleaning of files, added
      because Python doesn't work when stripped.
Loading