Build omnibus-chef in dedicated dir


#1

Hello. As i know omnibus-chef have hardcoded paths like /opt/chef/xxx
that not very good.
If i send patches for omnibus, omnibus-chef, omnibus-software to get
abilit to run something like:

cd omnibus-chef
BUNDLE_PATH=.bundle bundle install --without development
BUNDLE_PATH=.bundle bundle exec omnibus build chef -l debug -o
base_dir:./local dest_dir:./local/output

and get in local/output fully working chef that can be dropped to
/opt/ and run without problems, does this acceptable by upstream?
Also if user does not override dest_dir its by fault have value / that
mean that current behaviour works fine.
What do you think?
P.S. I’m need this to properly create archive with chef for my distro.


Vasiliy Tolstov,
e-mail: v.tolstov@selfip.ru
jabber: vase@selfip.ru


#2

On 11/19/14, 7:58 AM, Vasiliy Tolstov wrote:

BUNDLE_PATH=.bundle bundle install --without development

We have a hard requirement to install the development gems so that we
can test against what we ship. In the past we bundle installed to a
different ruby and tested against that and wound up shipping broken
packages. So patches to straight up drop adding the dev gems won’t be
accepted, they’re there for a reason, if we could drop them we would
have. You’d need to somehow feed options through into the software defn
of chef to conditionally avoid doing that.


#3

2014-11-19 20:58 GMT+03:00 Lamont Granquist lamont@opscode.com:

We have a hard requirement to install the development gems so that we can
test against what we ship. In the past we bundle installed to a different
ruby and tested against that and wound up shipping broken packages. So
patches to straight up drop adding the dev gems won’t be accepted, they’re
there for a reason, if we could drop them we would have. You’d need to
somehow feed options through into the software defn of chef to conditionally
avoid doing that.

This is example. All that i do - i’m install to dest_dir instead of
install_dir, also install all gems to dest_dir/install_dir instead of
only install_dir. without development is example how to build own
chef.


Vasiliy Tolstov,
e-mail: v.tolstov@selfip.ru
jabber: vase@selfip.ru


#4

2014-11-20 0:27 GMT+03:00 Vasiliy Tolstov v.tolstov@selfip.ru:

This is example. All that i do - i’m install to dest_dir instead of
install_dir, also install all gems to dest_dir/install_dir instead of
only install_dir. without development is example how to build own
chef.

I’m create pull requests to omnibus , omnibus-chef and omnibus-software.
Please take a look and say, does it acceptable after some rewriting (i
think that it needs to be…)


Vasiliy Tolstov,
e-mail: v.tolstov@selfip.ru
jabber: vase@selfip.ru


#5

페00__00__000
On Nov 20, 2014 12:58 AM, “Vasiliy Tolstov” v.tolstov@selfip.ru wrote:

Hello. As i know omnibus-chef have hardcoded paths like /opt/chef/xxx
that not very good.
If i send patches for omnibus, omnibus-chef, omnibus-software to get
abilit to run something like:

cd omnibus-chef
BUNDLE_PATH=.bundle bundle install --without development
BUNDLE_PATH=.bundle bundle exec omnibus build chef -l debug -o
base_dir:./local dest_dir:./local/output

and get in local/output fully working chef that can be dropped to
/opt/ and run without problems, does this acceptable by upstream?
Also if user does not override dest_dir its by fault have value / that
mean that current behaviour works fine.
What do you think?
P.S. I’m need this to properly create archive with chef for my distro.


Vasiliy Tolstov,
e-mail: v.tolstov@selfip.ru
jabber: vase@selfip.ru


#6

On Wednesday, November 19, 2014 at 7:58 AM, Vasiliy Tolstov wrote:

Hello. As i know omnibus-chef have hardcoded paths like /opt/chef/xxx
that not very good.

Can you explain why it’s not good?

If i send patches for omnibus, omnibus-chef, omnibus-software to get
abilit to run something like:

cd omnibus-chef
BUNDLE_PATH=.bundle bundle install --without development
BUNDLE_PATH=.bundle bundle exec omnibus build chef -l debug -o
base_dir:./local dest_dir:./local/output

You say below that you have a different distro than the ones we already support. Would it make more sense to always build the packages in this location on your platform?

and get in local/output fully working chef that can be dropped to
/opt/ and run without problems, does this acceptable by upstream?

This will be really difficult to do. Paths to shared libraries get baked in to the binaries at compile time.

Also if user does not override dest_dir its by fault have value / that
mean that current behaviour works fine.
What do you think?
P.S. I’m need this to properly create archive with chef for my distro.

What distro?


Vasiliy Tolstov,
e-mail: v.tolstov@selfip.ru (mailto:v.tolstov@selfip.ru)
jabber: vase@selfip.ru (mailto:vase@selfip.ru)


Daniel DeLeo