Git Product home page Git Product logo

puppet-homebrew's Introduction

Homebrew Puppet Module for Boxen

Build Status

Install Homebrew, a package manager for Mac OS X.

Usage

include homebrew

# Declaring a custom package formula, and installing package

class clojure {
  homebrew::tap { 'homebrew/versions': }

  homebrew::formula {
    'clojure': ; # source defaults to puppet:///modules/clojure/brews/clojure.rb
    'leinengen':
      source => 'puppet:///modules/clojure/brews/leinengen.rb' ;
  }

  package {
    'boxen/brews/clojure':
      ensure => 'aversion' ;
    'boxen/brews/leinengen':
      ensure => 'anotherversion' ;
  }
}

# Installing homebrew formulas, and passing in arbitrary flags, like:
# brew install php54 --with-fpm --without-apache

package { 'php54':
  ensure => present,
  install_options => [
    '--with-fpm',
    '--without-apache'
  ],
  require => Package['zlib']
}

Required Puppet Modules

  • boxen, >= 1.2
  • repository, >= 2.0
  • stdlib, >= 4.0

Development

Write code. Run script/cibuild to test it. Check the script directory for other useful tools.

puppet-homebrew's People

Contributors

a-warner avatar benburkert avatar bleything avatar dgoodlad avatar fd avatar gorsuch avatar hanjianwei avatar jacobbednarz avatar jbarnette avatar mikemcquaid avatar mrchrisadams avatar n0ts avatar pgib avatar rafaelfranca avatar salimane avatar sr avatar tarebyte avatar timtim123456 avatar tomohiro avatar wfarr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

puppet-homebrew's Issues

gcc48 brew calling Formula.sha1

Error: Calling Formula.sha1 is disabled!
Use Formula.sha256 instead.
/opt/boxen/homebrew/Library/Taps/boxen/homebrew-brews/gcc48.rb:27:in `<class:Gcc48>'
Please report this to the boxen/brews tap!
If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  boxen/brews

I saw a related issue #96, but it doesn't seem like all of them were covered. Apparently I have gcc48 installed, and so brew doctor is mad about it. Thanks!

Error installing irssi package

I think there's a problem with boxen-install. I can install irssi just fine with homebrew by itself, but when I install it through boxen it fails.

Failed running sudo -E -u razic /opt/boxen/homebrew/bin/brew boxen-install irssi at 11:/opt/boxen/repo/modules/people/manifests/razic.pp

How to use bottles?

I found that package is always built from source, how can I force it to use the homebrew bottles?

Sorry for the trouble, but I cannot find document talking about this.

Error: Execution of 'brew update' returned 1: Error: Cowardly refusing to 'sudo brew update'

After updating brew

salimane at Salimanes-MacBook-Pro (git:salimane.com)  [docker-vm R] in ~/
ยฑ brew update                                                                     
==> Migrating Homebrew to v0.9.9
From https://github.com/Homebrew/brew
 + 6146a1c...fbc5fc3 master     -> origin/master  (forced update)
HEAD is now at fbc5fc3 Mention the haskell-platform cask
Already up-to-date.

while running boxen, I started getting :

[1;31mError: Execution of 'brew update' returned 1: Error: Cowardly refusing to 'sudo brew update'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.
Notice: /Package[docker]: Dependency Homebrew_repo[/usr/local] has failures: true

Everything was running without errors a few days ago.

@MikeMcQuaid any idea ?

Thanks

Deprecate Homebrew::Hooks

It would be nice to be able to deprecate Homebrew::Hooks::Bottles and have Boxen use Homebrew's native bottles at this stage.

Thoughts?

install_options not respected

Homebrew doesn't seem to be respecting install_options passed. For example, I've tried both:

Package <| title == 'boxen/brews/nginx' |> {
  install_options => '--with-passenger'
}

And:

Package <| title == 'boxen/brews/nginx' |> {
  install_options => ['--with-passenger']
}

In both cases, the precompiled binary is installed. I've made a modification to puppet-homebrew to fix this for myself. I feel like this shouldn't be necessary and that I must be missing something.

Question: possible to remove boxen's dependency ?

Hi,

I'm quite average in puppet, and i was thinking about doing my own puppet script to install/maintain my workstation when i found boxen. I'm quite impressed, but still i don't understand why all your modules are built on top of boxen/boxen. It means to me that it's not usable outside of boxen environment, thus not portable so far. Would it be possible to open it a little more :) ?

Thanks for answering

brew boxen-install bypasses system proxy configurations

Initial investigations show an unexpected response from your amazon server on the Net::HTTP request in boxen-monkeypatches.rb:25. When I curl the URL given I get this XML response

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>542AC04223E7C175</RequestId>
    <HostId>
       RlehBneo53p7SInRRA2SuNRwLNOrnjR4K+7r/AKEo9/kxc+my013PfCvCg5ttJdy
    </HostId>
</Error>

And logs put into the body of the |http| block are never executed.

formula installed by an alias are re-created every run

The homebrew formula "jsl" is aliased to the name "jslint". With this manifest:

package { 'jslint': }

Every single run of boxen tries to install jslint again, like so:

Debug: Executing 'brew boxen-latest jslint'
Debug: Executing 'brew info jslint'
Debug: Executing 'brew boxen-install jslint'
Notice: /Stage[main]/People::Indirect/Package[jslint]/ensure: created

Homebrew is actually smart enough to not reinstall the formula that is already installed. It would be nice if the Homebrew provider was at least that smart!

S3 cached binaries incompatible with all but most recent Macs

Whatever method is being used to generate the cached boxen version of homebrew binary bottles that are stored on S3 seems to be generating binaries that will die fatally on anything but the newest intel architecture macs.

See, for example,
#17
boxen/puppet-emacs#5

This affects Macs that are not very old at all, for example, 2011 model Macbook Airs (current revision) that use Core2Duo processors.

I'm not sure if there is a way to generate more compatible binaries? (If not, machines that cannot use the precompiled binaries should not download them from S3, and instead compile from source. As it is currently, they happily install a bunch of broken binaries, which borks all of boxen (and other things) since that includes a broken version of git.)

brew install vs brew boxen-install

Why are these two commands producing two different download URLs for phantomjs?

naked brew => https://downloads.sf.net/project/machomebrew/Bottles/phantomjs-1.9.2.mavericks.bottle.1.tar.gz
boxen's brew => https://phantomjs.googlecode.com/files/phantomjs-1.9.2-source.zip

The googlecode.com is actually in /opt/boxen/homebrew/Library/Formula/phantomjs.rb but both claim to load that formula.
No clue where the naked brew's sourceforge Bottle url is being built.

Would the boxen monkeypatches be overriding some newer URL generation in homebrew somehow?

aethon:~$ brew install -dv phantomjs
/opt/boxen/homebrew/Library/brew.rb: loading /opt/boxen/homebrew/Library/Formula/phantomjs.rb
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/phantomjs-1.9.2.mavericks.bottle.1.tar.gz
/usr/bin/curl -f#LA Homebrew 0.9.5 (Ruby 1.8.7-358; Mac OS X 10.9) https://downloads.sf.net/project/machomebrew/Bottles/phantomjs-1.9.2.mavericks.bottle.1.tar.gz -C 0 -o /opt/boxen/cache/homebrew/phantomjs-1.9.2.mavericks.bottle.1.tar.gz.incomplete
^C
aethon:~$ brew boxen-install -dv phantomjs
/opt/boxen/homebrew/Library/brew.rb: loading /opt/boxen/homebrew/Library/Formula/phantomjs.rb
==> Downloading https://phantomjs.googlecode.com/files/phantomjs-1.9.2-source.zip
/usr/bin/curl -f#LA Homebrew 0.9.5 (Ruby 1.8.7-358; Mac OS X 10.9) https://phantomjs.googlecode.com/files/phantomjs-1.9.2-source.zip -C 0 -o /opt/boxen/cache/homebrew/phantomjs-1.9.2.zip.incomplete

Boxen's hombrew calling Formula.sha1 which is deprecated

These deprecations caused hub not to install on my comp when I ran boxen. I can install this manually with brew install hub but I think these deprecation warnings should probably be looked at to see if anything needs to be taken care of.

Notice: /Stage[main]/Hub/Package[boxen/brews/hub]/ensure: ensure changed '2.2.1' to 'Warning: Calling Formula.sha1 is deprecated!
Use Formula.sha256 instead.
/usr/local/Library/Taps/boxen/homebrew-brews/hub.rb:6:in `<class:Hub>'
Please report this to the boxen/brews tap!

Warning: Calling SoftwareSpec#sha1 is deprecated!
Use SoftwareSpec#sha256 instead.
/usr/local/Library/Taps/boxen/homebrew-brews/hub.rb:6:in `<class:Hub>'
Please report this to the boxen/brews tap!

Warning: Calling Resource#sha1 is deprecated!
Use Resource#sha256 instead.
/usr/local/Library/Taps/boxen/homebrew-brews/hub.rb:6:in `<class:Hub>'
Please report this to the boxen/brews tap!

Logging brew operations

It would be great if homebrew package logged its output to /opt/boxen/repo/log/homebrew.log

Right now there is no console output when installing or updating brew packages using boxen even when boxen is run with --debug option.

brew boxen-install

Should you be forced to always use brew boxen-install application when installing?

I found these lines and they gave me issues when installing tmux. When I was using brew boxen-install I would have an issue with boxen-install not knowing where a specific version of libevent is. When I use plain brew install tmux however libevent would install properly. I resolved this by passing '--nop' to 'install_options' in order to use plain brew install. Thank you for your time!

Error: Could not execute posix command: Invalid group

I set up boxen using my company's network and everything works fine. But when I run it at home, it has the following errors related to group permission. It's related to the issue here: boxen/our-boxen#235.

Error: /Stage[main]/Imagemagick/Package[boxen/brews/little-cms2]/ensure: change from absent to 2.4-boxen1 failed: Could not update: Execution of 'brew info boxen/brews/little-cms2' returned 1: Error: Could not execute posix command: Invalid group: 168357174
/opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log/destinations.rb:94:in `flush': Bad file descriptor - /opt/boxen/repo/log/boxen.log (Errno::EBADF)
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log/destinations.rb:94:in `handle'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:156:in `newmessage'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:322:in `threadlock'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:72:in `synchronize_on'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/sync.rb:230:in `synchronize'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:72:in `synchronize_on'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:322:in `threadlock'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:155:in `newmessage'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:154:in `each'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:154:in `newmessage'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:242:in `initialize'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:82:in `new'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/log.rb:82:in `create'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/logging.rb:8:in `send_log'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/logging.rb:15:in `err'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/logging.rb:27:in `log_exception'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/execution.rb:226:in `execute_posix'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:314:in `call'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:314:in `safe_posix_fork'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:307:in `fork'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:307:in `safe_posix_fork'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/execution.rb:191:in `execute_posix'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/execution.rb:143:in `execute'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/provider.rb:118:in `execute'
    from /opt/boxen/repo/shared/boxen/lib/puppet/provider/package/homebrew.rb:92:in `version_defined?'
    from /opt/boxen/repo/shared/boxen/lib/puppet/provider/package/homebrew.rb:56:in `install'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/type/package.rb:105
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/property.rb:205:in `instance_eval'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/property.rb:205:in `call_valuemethod'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/property.rb:489:in `set'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/property.rb:572:in `sync'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction/resource_harness.rb:114:in `apply_parameter'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction/resource_harness.rb:56:in `perform_changes'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction/resource_harness.rb:133:in `evaluate'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:48:in `apply'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:83:in `eval_resource'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:103:in `evaluate'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:351:in `thinmark'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:350:in `thinmark'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:103:in `evaluate'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:382:in `traverse'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/transaction.rb:98:in `evaluate'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/resource/catalog.rb:144:in `apply'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/configurer.rb:122:in `apply_catalog'
    from /opt/boxen/repo/shared/boxen/lib/puppet/provider/package/hax.rb:12:in `benchmark'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/configurer.rb:121:in `apply_catalog'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/configurer.rb:179:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application/apply.rb:265:in `apply_catalog'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application/apply.rb:213:in `main'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application/apply.rb:146:in `run_command'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application.rb:364:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application.rb:456:in `plugin_hook'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application.rb:364:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util.rb:504:in `exit_on_fail'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/application.rb:364:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:132:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:86:in `execute'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/puppet-3.1.1/bin/puppet:4
    from /opt/boxen/repo/bin/puppet:16:in `load'
    from /opt/boxen/repo/bin/puppet:16

Not installing to the right directory

It seems the most recent version(s) of this repo has stopped obeying our command to install homebrew to /opt/boxen/homebrew. On a newly set up machine I do which brew and I get /usr/local/bin/brew, which is not a symlink to any other location. On an older machine set up in the past the same which brew yields /opt/boxen/homebrew/bin/brew.

Using this to install homebrew in the Puppetfile:
github "homebrew", "2.0.2"

In the past we used puppet-homebrew 1.13.0.

Running OS X 10.11.4

Migrating other modules to new Homebrew::Formula stuff

  • create gcc module and provide apple-gcc42 formula
  • add augeas formula to augeas module
  • add clojure formula to clojure module
  • add dnsmasq formula to dnsmasq module
  • create dpkg module and provide dpkg formula
  • add elasticsearch formula to elasticsearch module
  • add emacs formula to emacs module
  • add git formula to git module
  • create gyp module and add gyp formula to it
  • add leinengen formula to clojure module
  • add memcached formula to memcached module
  • add mongodb formula to mongodb module
  • add mysql formula to mysql module
  • add nginx formula to nginx module
  • add postgresql formula to postgresql module
  • add qt formula to qt module
  • add redis formula to redis module
  • add riak formula to riak module
  • create scons module and provide scons formula in it
  • create screen module and provide screen formula in it
  • add solr formula to solr module
  • add wkhtmltopdf formula to wkhtmltopdf module
  • create xpdf module and provide xpdf formula in it

brew error with vim package after first run

I'm seeing the same problem of the vim package failing after the first time. It was posited that Homebrew is trying to upgrade my vim and failing to unlink the old version (boxen/puppet-vim#11).

Running sudo -E -u user brew switch vim 7.3.976 manually fails, though brew link --overwrite runs fine. Is this a problem with the homebrew package?

Here's my Boxen output:

Error: Execution of 'brew switch vim 7.3.976' returned 1: Cleaning /opt/boxen/homebrew/Cellar/vim/7.3.976
Warning: Could not link vim. Unlinking...
Error: Could not symlink file: /opt/boxen/homebrew/Cellar/vim/7.3.976/bin/vimdiff
Target /opt/boxen/homebrew/bin/vimdiff already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

Error: /Stage[main]/Vim/Package[vim]/ensure: change from absent to present failed: Execution of 'brew switch vim 7.3.976' returned 1: Cleaning /opt/boxen/homebrew/Cellar/vim/7.3.976
Warning: Could not link vim. Unlinking...
Error: Could not symlink file: /opt/boxen/homebrew/Cellar/vim/7.3.976/bin/vimdiff
Target /opt/boxen/homebrew/bin/vimdiff already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

Installaing htop gives a notice every run

using

package { 'htop': }

or

package { 'htop': 
    ensure => '0.8.2.1'
}

both generates a notice every boxen run:

Htop/Package[htop]/ensure: created

Is there a way to avoid this / fix this?

Updating Puppetfile to homebrew 1.4.1 causes dependency cycle error

Here's the error in the terminal:

Error: Could not apply complete catalog: Found 1 dependency cycle:
(File[/opt/boxen/cache/homebrew] => Class[Homebrew] => Package[boxen/brews/git] => Class[Git] => Repository[/opt/boxen/homebrew] => Class[Homebrew])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz

Here's my Puppetfile:

# This file manages Puppet module dependencies.
#
# It works a lot like Bundler. We provide some core modules by
# default. This ensures at least the ability to construct a basic
# environment.

def github(name, version, options = nil)
  options ||= {}
  options[:repo] ||= "boxen/puppet-#{name}"
  mod name, version, :github_tarball => options[:repo]
end

# Includes many of our custom types and providers, as well as global
# config. Required.

github "boxen", "2.3.3"

# Core modules for a basic development environment. You can replace
# some/most of these if you want, but it's not recommended.

github "dnsmasq",    "1.0.0"
github "gcc",        "2.0.0"
github "git",        "1.2.5"
github "homebrew",   "1.4.1"
github "hub",        "1.0.0"
github "inifile",    "0.9.0", :repo => "cprice-puppet/puppetlabs-inifile"
github "nginx",      "1.4.0"
github "nodejs",     "3.2.7"    
github "repository", "2.2.0"
github "ruby",       "6.3.4"
github "stdlib",     "4.1.0", :repo => "puppetlabs/puppetlabs-stdlib"
github "sudo",       "1.0.0"

# Optional/custom modules. There are tons available at
# https://github.com/boxen.

github "openssl", "1.0.0"
github "java", "1.1.2"
github "xquartz", "1.1.0"
github "postgresql", "1.0.0"
github "redis", "1.0.0"
github "sysctl", "1.0.0"
github "pgadmin3", "0.0.3", :repo => "dennisreimann/puppet-pgadmin3"
github "sublime_text_2", "1.1.2"
github "chrome", "1.1.0"
github "firefox", "1.0.5"
github "heroku", "2.0.0"
github "github_for_mac", "1.0.1"
github "mongodb", "1.0.4"

php55-sphinx failed to build on 10.9.2

Hi

I'm having trouble installing php55-sphinx. Pretty sure it's a pathing issue with homebrew being installed in boxen's /opt/boxen/homebrew instead of /usr/local, but I'm unsure of how to resolve it.

Here's the error:
configure: error: Cannot find libsphinxclient headers

And the gist of my logs: https://gist.github.com/anonymous/9683930

Any help greatly appreciated.

For reference I've already asked the homebrew-php guys for help here https://github.com/josegonzalez/homebrew-php/issues/1049, unfortunately they weren't sure what the problem could be.

Install hg error

Error: Execution of 'brew boxen-install hg' returned 1: Error: mercurial-3.0.2 already installed
To install this version, first `brew unlink mercurial'
Error: /Stage[main]/People::Goofansu::Packages/Package[hg]/ensure: change from absent to present failed: Execution of 'brew boxen-install hg' returned 1: Error: mercurial-3.0.2 already installed
To install this version, first `brew unlink mercurial'

Version 3.0.2 was installed already. Why does it report absent?

FYI, brew outdated shows that there is version 3.1.0.

"No available formula" error from tapped repository

I'm experiencing a problem when trying to install the zlib library from the homebrew-dupes tapped repository, where I appear to get different homebrew behaviour from within boxen, and outside of boxen. This was working until approx 3 or 4 days ago, although during that time there have been no changes to the boxen modules, so my assumption is this is can only be due to a homebrew change?

Running /opt/boxen/homebrew/bin/brew install homebrew/dupes/zlib on my command line successfully installs zlib. However running the same command from within boxen (even as an exec) throws an error of Error: No available formula for zlib. This is following an exec to tap the homebrew dupes repo, and I've confirmed that brew tap within the homebrew provider shows that the homebrew/dupes repo exists.

Matching my terminal path to the path at that point in boxen also doesn't help, running either

/opt/boxen/homebrew/bin/brew info zlib

or

/opt/boxen/homebrew/bin/brew info homebrew/dupes/zlib

returns:

zlib: stable 1.2.7
http://www.zlib.net/

This formula is keg-only.
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

Not installed
https://github.com/homebrew/homebrew-dupes/commits/master/zlib.rb
==> Options
--universal
    Build a universal binary

Whereas when boxen runs the same command, I get Error: No available formula for zlib

When running through a manifest, puppet then throws an error:

Error: Could not set 'present' on ensure: undefined method strip' for nil:NilClass at 76:/opt/boxen/repo/shared/php/manifests/init.pp

Which is caused by the version_defined? method within the homebrew provider attempting to strip nil, as brew info hasn't returned anything.

Originally reported as mattheath/puppet-php#21

Manifest: https://github.com/mattheath/puppet-php/blob/master/manifests/init.pp#L57

exec { 'tap-homebrew-dupes':
  command => 'brew tap homebrew/dupes',
  creates => "${homebrew::config::tapsdir}/homebrew-dupes",
}

package { [
    'freetype',
    'gmp',
    'icu4c',
    'jpeg',
    'libpng',
    'libevent',
    'mcrypt',
    'homebrew/dupes/zlib',
  ]:
  provider => homebrew,
  require  => Exec['tap-homebrew-dupes'],
}

Update and Upgrade

When I run boxen it auto-updates, however my brew installation isn't updated nor upgraded.

Talk to Homebrew team about bottles and monkey patching

Following on from b34506a:

I'm the Homebrew guy who created bottles and just wanted to talk about this a bit as the bottle code changes often enough that I'm going to end up breaking your monkeypatching regularly. Can we talk a bit here (or by IM or mail) what you want to do with binaries and we'll work out a way to integrate this into Homebrew?

I think ideally we'll eliminate all monkeypatching from Homebrew and move any changes that you need into Homebrew itself.

When the Homebrew Kickstarter completes then we'll have CI hardware and be bottling a lot more stuff so we maybe want to try and collaborate on this (I'm happy for us to share S3 hosting and upload all our created bottles there).

In the shorter term if you're just looking for support for installing bottles from custom URLs I have commits locally which I was planning on merging in the next week that do that.

Feel free to give me a shout by mail or IM if that's easier.

Brew update removes custom commands

Every time Boxen runs, it runs brew update. This removes the boxen-* commands that are installed, which causes Boxen to fail. Am I doing something wrong?

Could not evaluate: undefined method `exitstatus` for "e07584e3fbdc88327bafe23b9c40c904d0fff0a1\n":String

Hi,

Trying to get around an issue with the tap move issue, and updated puppet-git to 2.3.1 and puppet-homebrew to 1.9.2, as recommend here boxen/our-boxen#585, but now I'm getting an issue related to a string not having the exitstatus method. Error listed below.

Note that this is a boxen repo we've had going for a while, and the last time we rebased from upstream was release 3.3.8 of our-boxen. Is there another component we should update?

Edit: A gist link to the example error is easier to look at. The error line is on line 5:
https://gist.github.com/bschlief/3ef6487bb892b91f53b5

kdiff3 not installing

I am trying to install kdiff3. It hangs when using boxen but installs fine manually.

Request: move Boxen homebrew install to /usr/local

So right now Boxen has a lot of code (that is getting smaller, thanks @dgoodlad!) to work around the way that homebrew very, very strongly expects to be installed into /usr/local. In addition, keeping homebrew in /opt/boxen/homebrew means that it's not possible to use many of the pre-compiled homebrew bottles.

Boxen's readme already makes it clear that it doesn't work with existing homebrew installs in /usr/local, and rubies are already installed outside /opt/boxen (into /opt/rubies).

Since it seems impractical and/or unlikely that puppet-homebrew will ever have even close to as many compiled binaries as homebrew has bottles, can we just move boxen's homebrew into /usr/local and get bottles for everything for free? As a bonus, it would probably then be possible to stop maintaining the entire boxen-install command...

Ensure 'latest' fails with wget 1.51_1

If you ensure => 'latest' on a package like wget which (today) has version 1.51_1, we end up failing with:

2014-07-07 20:01:18 -0600 /Stage[main]/People::Dgoodlad/Package[wget]/ensure (err): change from 1.15_1 to 1.15 failed: Could not update: Execution of 'brew boxen-upgrade wget' returned 1: Error: wget-1.15_1 already installed

bottle pours failing with "403 Forbidden" causing package installs to fail

For instance, install of nginx fails from failure to install pcre bottle. Amazon S3 is returning "403 Forbidden" for /boxen-downloads/homebrew/10.9/pcre-8.34.tar.bz2.

curl -I http://s3.amazonaws.com/boxen-downloads/homebrew/10.9/pcre-8.34.tar.bz2
HTTP/1.1 403 Forbidden
x-amz-request-id: D2EFFF62CD027147
x-amz-id-2: +oP46qQ+59jrrzwCZR/3rEu0C1pBbYqUII5Sz2iyiYXvM6L7TqDXQRMW8FXNnC3k
Content-Type: application/xml
Transfer-Encoding: chunked
Date: Wed, 12 Mar 2014 03:32:10 GMT
Server: AmazonS3

Was able to workaround this issue by forcing boxen/brews/nginx (and dependencies) to build from source:

package { 'boxen/brews/nginx':
  ensure => '1.4.4-boxen1',
  install_options => ['--build-from-source'],
  notify => Service['dev.nginx']
}

tap: support custom URL

brew tap supports a second URL argument, which you can use to tap a private repo: Homebrew/legacy-homebrew@d869e88

We use this to for example tap a private Github repository and install packages from it. Reading through the code here, it seems like this second URL argument is unsupported.

Question: How to use bottles?

I'd really like to make use of bottles so that each person on my team doesn't have to spend hours compiling the same stuff; however, I'm having a rough time figuring out how to actually do this.

I've set BOXEN_S3_BUCKET in my config/boxen.rb, and have created a homebrew/yosemite path (which I assume is correct) within that bucket. I'm starting with just one formula to test with (mongodb). When I build locally, a bottle is automatically created in /opt/boxen/cache/homebrew, though it has a .tar.gz extension instead of the .tar.bz2 that the monkey patch seems to want.

I uploaded the generated one and a .tar.bz2 version, but it's still not getting used. I forked the boxen/puppet-mongodb repo to a) use a different version of MongoDB, and b) to specify the bottle block (which I can only assume is needed?)...

bottle do
  cellar :any
  sha1 "44779e646de756c1a1b5d349f55e978d0681f5bf" => :yosemite
end

At this point, I'm out of ideas. Any pointers or advice would be greatly appreciated. I'm happy to write up some documentation for everyone else once things are clear.

Thanks!

Until then...

confused

Merge with puppet-brewcask

Upstream Homebrew now manages brew and cask so we can merge in boxen/puppet-brewcask so it can be managed in a centralise module.

Endless repository migration

Running Boxen while using puppet-homebrew 2.1.0 seems to still cause repeated repository migration errors:

Could not update: Execution of 'brew update' returned 1: ==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
  http://docs.brew.sh/Analytics.html

Error: /usr/local/Homebrew already exists.
Please remove it manually or uninstall and reinstall Homebrew into a new
location as the migration cannot be done automatically.

Any theories about how to resolve this?

Fail to install Nginx

No luck of installing Nginx using Boxen. For more details here is the error:

==> Installing nginx from boxen/brews
==> Downloading http://nginx.org/download/nginx-1.10.0.tar.gz
Already downloaded: /opt/boxen/cache/homebrew/nginx-1.10.0-boxen1.tar.gz
==> ./configure --prefix=/usr/local/Cellar/nginx/1.10.0-boxen1 --with-http_ssl_module --with-pcre --with-ipv6 --with-cc-opt=-I/usr/local/opt/pcre/include -I/usr/local/opt/openssl/include --with-ld-opt
==> make
==> make install
Last 15 lines from /Users/rozzette.argao/Library/Logs/Homebrew/nginx/03.make:

make -f objs/Makefile install
test -d '/usr/local/Cellar/nginx/1.10.0-boxen1' || mkdir -p '/usr/local/Cellar/nginx/1.10.0-boxen1'
test -d '/usr/local/Cellar/nginx/1.10.0-boxen1/sbin' \
		|| mkdir -p '/usr/local/Cellar/nginx/1.10.0-boxen1/sbin'
test ! -f '/usr/local/Cellar/nginx/1.10.0-boxen1/sbin/nginx' \
		|| mv '/usr/local/Cellar/nginx/1.10.0-boxen1/sbin/nginx' \
			'/usr/local/Cellar/nginx/1.10.0-boxen1/sbin/nginx.old'
cp objs/nginx '/usr/local/Cellar/nginx/1.10.0-boxen1/sbin/nginx'
test -d '/opt/boxen/config/nginx' \
		|| mkdir -p '/opt/boxen/config/nginx'
cp conf/koi-win '/opt/boxen/config/nginx'
cp: /opt/boxen/config/nginx/koi-win: Operation not permitted
make[1]: *** [install] Error 1
make: *** [install] Error 2

If reporting this issue please do so to (not Homebrew/brew or Homebrew/core):
boxen/brews

Hope to have a solution for this. Thanks in advance!

Fetch of homebrew repo doesn't retry in the face of failures

When installing recently I happened to be on a slow network connection during the fetch of the Homebrew/homebrew repo, and the install homebrew to ${installdir} task here timed out: https://github.com/boxen/puppet-homebrew/blob/master/manifests/init.pp#L55

When re-running the boxen installed, it didn't retry the fetch, instead skipping past that command as if it had completed successfully (and failing cryptically later).

This behaviour is due to the presence of the creates => "${installdir}/.git" attribute in that exec command, which implies that the command doesn't need to be run as long as .git exists. But obviously that only means the initial git init succeeded, not anything after it.

Since the chain of commands is idempotent and safe to re-run, the "creates" attribute should probably just be removed entirely.

Support newer versions of homebrew

Since homebrew has been split into two repositories now I'd like to update the puppet module to ensure we continue doing things correctly in the future and don't cause weird bugs to our module being out of sync.

@MikeMcQuaid would you be able to share some ideas on how you think this module should progress forward? I understand you don't maintain Boxen any more, however I think you're best placed to understand the changes in Homebrew and Boxen together ๐Ÿ˜„

Upgrading from version 1.0.0 seems to break puppet-tmux due to options used to compile boxen's tmux binary

A detailed description of the bug in puppet-tmux and attempted fixes is at boxen/puppet-tmux#1. @dieterdemeyer and I agree that based on the current evidence, it looks like the cause of the puppet-tmux bug might be changes in puppet-homebrew.

Installing tmux from source via homebrew seems to fix the issues, so a potential fix would be to add a feature that implements install options (which seems to relate to #12).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.