Skip to content

Instantly share code, notes, and snippets.

@bixu
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save bixu/a8aec69a67b8c692c6c5 to your computer and use it in GitHub Desktop.

Select an option

Save bixu/a8aec69a67b8c692c6c5 to your computer and use it in GitHub Desktop.
Wrapper script for building omnibus-chef for ubuntu LTS 12.0.4 with ruby 2.1.1
#!/bin/bash
set -e
chef_version="11.12.8"
if [ $(uname -a | grep -c Ubuntu) -eq 1 ]; then
packager="apt-get"
packages="build-essential git ruby1.9.1 ruby-bundler ruby1.9.1-dev"
else
packager="pkgin"
packages="build-essential git ruby193-rubygems"
fi
sudo $packager -y update
sudo $packager -y upgrade
sudo $packager -y install $packages
if [ ! -d ./omnibus-chef ]; then
git clone https://github.com/opscode/omnibus-chef.git
fi
if [ -d /var/cache/omnibus ]; then
sudo chown -R $(whoami) /var/cache/omnibus
sudo chown -R $(whoami) /opt/chef
fi
echo "source 'https://rubygems.org'
gem 'omnibus-software', :git => 'https://github.com/bixu/omnibus-software.git',
:branch => 'master'
gem 'omnibus', :git => 'https://github.com/bixu/omnibus-ruby.git',
:branch => 'master'" > omnibus-chef/Gemfile
echo "name \"chef\"
friendly_name \"chef\"
maintainer \"bixu\"
homepage \"bixv.org\"
build_iteration 1
build_version do
# Use chef to determine the build version
source :git, from_dependency: 'chef'
# Set a Rubygems style version
output_format :git_describe
end
install_path \"/opt/chef\"
resources_path File.join(files_path, \"chef\")
mac_pkg_identifier \"com.getchef.pkg.chef\"
# You can pin the components to specific versions as below
override :chef, version: \"11.12.8\"
# override :ohai, version: \"7.0.4\"
dependency \"preparation\"
dependency \"chef\"
dependency \"version-manifest\"
" > omnibus-chef/config/projects/chef.rb
sudo gem install bundler --no-ri --no-rdoc
cd omnibus-chef
bundle install --binstubs
sudo mkdir -p /opt/chef
sudo chown $(whoami) /opt/chef
bundle install --binstubs
sudo mkdir -p /var/cache/omnibus
sudo chown $(whoami) /var/cache/omnibus
git config --global user.email "$(whoami)@$(hostname)"
git config --global user.name "$(whoami)"
./bin/omnibus build chef
/opt/chef/embedded/bin/gem install chef -v $chef_version --no-ri --no-rdoc
sudo chown -R root /opt/chef
sudo chgrp -R root /opt/chef
if [ $(echo `uname -a` | grep "^SunOS" | grep -c joyent) -eq 1 ]; then
distro="smartos"
elif [ $(echo `uname -a` | grep "^Linux" | grep -c buntu) -eq 1 ]; then
distro="ubuntu"
fi
tar -zcvf omnibus-chef_$distro.tar.gz /opt/chef
echo "your omnibus bundle is at ./omnibus-chef_$distro.tar.gz"
@bixu
Copy link
Author

bixu commented May 21, 2014

SmartOS builds currently fail thusly:

Building chef ...
    [Builder: pkg-config] W | make command failed! (4.292674166s)
    [Builder: pkg-config] W | make command failed! (1.048779088s)
    [Builder: pkg-config] W | make command failed! (0.823649152s)
    [Builder: pkg-config] W | make command failed! (0.955585554s)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
Failed to build pkg-config while running `make -j 3` with cwd=/var/cache/omnibus/src/pkg-config-0.28,timeout=5400,live_stream=#<Omnibus::Logger::LiveStream:0x0000000109e178>,env="LDFLAGS=-L/opt/chef/embedded/lib -I/opt/chef/embedded/include CFLAGS=-I/opt/chef/embedded/include -L/opt/chef/embedded/lib"
Exception:
  Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '2'
  ---- Begin output of make -j 3 ----
  STDOUT: make  all-recursive
  make[1]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28'
  Making all in glib
  make[2]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  make  all-recursive
  make[3]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  Making all in .
  make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  Making all in m4macros
  make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/m4macros'
  make[4]: Nothing to be done for 'all'.
  make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/m4macros'
  Making all in glib
  make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  make  all-recursive
  make[5]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  Making all in libcharset
  make[6]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib/libcharset'
  make[6]: Nothing to be done for 'all'.
  make[6]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib/libcharset'
  Making all in .
  make[6]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
    CC       gconvert.lo
    CC       gfileutils.lo
    CC       gerror.lo
  Makefile:700: recipe for target 'gconvert.lo' failed
  make[6]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  Makefile:754: recipe for target 'all-recursive' failed
  make[5]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  Makefile:541: recipe for target 'all' failed
  make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  Makefile:446: recipe for target 'all-recursive' failed
  make[3]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  Makefile:374: recipe for target 'all' failed
  make[2]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
  Makefile:623: recipe for target 'all-recursive' failed
  make[1]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28'
  Makefile:388: recipe for target 'all' failed
  STDERR: gconvert.c:66:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
  gconvert.c: In function 'g_iconv':
  gconvert.c:314:3: warning: passing argument 2 of 'libiconv' from incompatible pointer type [enabled by default]
  In file included from gconvert.c:27:0:
  /opt/local/include/iconv.h:83:15: note: expected 'const char **' but argument is of type 'gchar **'
  make[6]: *** [gconvert.lo] Error 1
  make[6]: *** Waiting for unfinished jobs....
  make[5]: *** [all-recursive] Error 1
  make[4]: *** [all] Error 2
  make[3]: *** [all-recursive] Error 1
  make[2]: *** [all] Error 2
  make[1]: *** [all-recursive] Error 1
  make: *** [all] Error 2
  ---- End output of make -j 3 ----
  Ran make -j 3 returned 2
    /opt/local/lib/ruby/gems/1.9.3/gems/mixlib-shellout-1.4.0/lib/mixlib/shellout.rb:257:in `invalid!'
    /opt/local/lib/ruby/gems/1.9.3/gems/mixlib-shellout-1.4.0/lib/mixlib/shellout.rb:244:in `error!'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:275:in `block in execute_sh'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:325:in `time_it'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:273:in `execute_sh'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:227:in `execute'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:217:in `block (2 levels) in build'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:216:in `each'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:216:in `block in build'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:325:in `time_it'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/builder.rb:215:in `build'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/software.rb:528:in `execute_build'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/software.rb:446:in `build_me'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/project.rb:94:in `block in build_me'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/project.rb:93:in `each'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/project.rb:93:in `build_me'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/cli.rb:75:in `build'
    /opt/local/lib/ruby/gems/1.9.3/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    /opt/local/lib/ruby/gems/1.9.3/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    /opt/local/lib/ruby/gems/1.9.3/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/cli/base.rb:32:in `dispatch'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/cli/deprecated.rb:92:in `dispatch'
    /opt/local/lib/ruby/gems/1.9.3/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/lib/omnibus/cli.rb:41:in `execute!'
    /home/admin/.bundler/ruby/1.9.3/omnibus-ruby-6231f0602aea/bin/omnibus:11:in `<top (required)>'
    ./bin/omnibus:16:in `load'
    ./bin/omnibus:16:in `<main>'
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
    [Builder: pkg-config] W | Build failed! (134.29693145s)
Expected process to exit with [0], but received '2'
---- Begin output of make -j 3 ----
STDOUT: make  all-recursive
make[1]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28'
Making all in glib
make[2]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
make  all-recursive
make[3]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
Making all in .
make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
Making all in m4macros
make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/m4macros'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/m4macros'
Making all in glib
make[4]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
make  all-recursive
make[5]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
Making all in libcharset
make[6]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib/libcharset'
make[6]: Nothing to be done for 'all'.
make[6]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib/libcharset'
Making all in .
make[6]: Entering directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
  CC       gconvert.lo
  CC       gfileutils.lo
  CC       gerror.lo
Makefile:700: recipe for target 'gconvert.lo' failed
make[6]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
Makefile:754: recipe for target 'all-recursive' failed
make[5]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
Makefile:541: recipe for target 'all' failed
make[4]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib/glib'
Makefile:446: recipe for target 'all-recursive' failed
make[3]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
Makefile:374: recipe for target 'all' failed
make[2]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28/glib'
Makefile:623: recipe for target 'all-recursive' failed
make[1]: Leaving directory '/var/cache/omnibus/src/pkg-config-0.28'
Makefile:388: recipe for target 'all' failed
STDERR: gconvert.c:66:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv
gconvert.c: In function 'g_iconv':
gconvert.c:314:3: warning: passing argument 2 of 'libiconv' from incompatible pointer type [enabled by default]
In file included from gconvert.c:27:0:
/opt/local/include/iconv.h:83:15: note: expected 'const char **' but argument is of type 'gchar **'
make[6]: *** [gconvert.lo] Error 1
make[6]: *** Waiting for unfinished jobs....
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
---- End output of make -j 3 ----
Ran make -j 3 returned 2

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