Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cleanup habitat/plan.sh for chef-infra-client
Signed-off-by: Salim Afiune <afiune@chef.io>
- Loading branch information
Salim Afiune
committed
Aug 2, 2019
1 parent
3284e90
commit a6acfe3
Showing
6 changed files
with
149 additions
and
132 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
pkg_name=chef-infra-client | ||
pkg_origin=chef | ||
pkg_maintainer="The Chef Maintainers <humans@chef.io>" | ||
pkg_description="The Chef Infra Client" | ||
pkg_license=('Apache-2.0') | ||
pkg_bin_dirs=(bin) | ||
pkg_build_deps=( | ||
core/make | ||
core/gcc | ||
core/git | ||
) | ||
pkg_deps=( | ||
core/glibc | ||
core/ruby26 | ||
core/libxml2 | ||
core/libxslt | ||
core/libiconv | ||
core/xz | ||
core/zlib | ||
core/bundler | ||
core/openssl | ||
core/cacerts | ||
core/libffi | ||
core/coreutils | ||
core/libarchive | ||
) | ||
pkg_svc_user=root | ||
|
||
pkg_version() { | ||
cat "${SRC_PATH}/VERSION" | ||
} | ||
|
||
do_before() { | ||
do_default_before | ||
update_pkg_version | ||
# We must wait until we update the pkg_version to use the pkg_version | ||
pkg_filename="${pkg_name}-${pkg_version}.tar.gz" | ||
} | ||
|
||
do_download() { | ||
build_line "Locally creating archive of latest repository commit at ${HAB_CACHE_SRC_PATH}/${pkg_filename}" | ||
# source is in this repo, so we're going to create an archive from the | ||
# appropriate path within the repo and place the generated tarball in the | ||
# location expected by do_unpack | ||
( cd "${SRC_PATH}" || exit_with "unable to enter hab-src directory" 1 | ||
git archive --prefix="${pkg_name}-${pkg_version}/" --output="${HAB_CACHE_SRC_PATH}/${pkg_filename}" HEAD | ||
) | ||
} | ||
|
||
do_verify() { | ||
build_line "Skipping checksum verification on the archive we just created." | ||
return 0 | ||
} | ||
|
||
do_prepare() { | ||
export OPENSSL_LIB_DIR=$(pkg_path_for openssl)/lib | ||
export OPENSSL_INCLUDE_DIR=$(pkg_path_for openssl)/include | ||
export SSL_CERT_FILE=$(pkg_path_for cacerts)/ssl/cert.pem | ||
|
||
build_line "Setting link for /usr/bin/env to 'coreutils'" | ||
if [ ! -f /usr/bin/env ]; then | ||
ln -s "$(pkg_interpreter_for core/coreutils bin/env)" /usr/bin/env | ||
fi | ||
} | ||
|
||
do_build() { | ||
local _bundler_dir | ||
local _libxml2_dir | ||
local _libxslt_dir | ||
local _zlib_dir | ||
export CPPFLAGS | ||
export GEM_HOME | ||
export GEM_PATH | ||
export NOKOGIRI_CONFIG | ||
|
||
_bundler_dir=$(pkg_path_for bundler) | ||
_libxml2_dir=$(pkg_path_for libxml2) | ||
_libxslt_dir=$(pkg_path_for libxslt) | ||
_zlib_dir=$(pkg_path_for zlib) | ||
|
||
CPPFLAGS="${CPPFLAGS} ${CFLAGS}" | ||
GEM_HOME=${pkg_prefix}/bundle | ||
GEM_PATH=${_bundler_dir}:${GEM_HOME} | ||
NOKOGIRI_CONFIG="--use-system-libraries \ | ||
--with-zlib-dir=${_zlib_dir} \ | ||
--with-xslt-dir=${_libxslt_dir} \ | ||
--with-xml2-include=${_libxml2_dir}/include/libxml2 \ | ||
--with-xml2-lib=${_libxml2_dir}/lib" | ||
|
||
|
||
build_line "Executing bundle install inside hab-cache path. ($CACHE_PATH/chef-config)" | ||
( cd "$CACHE_PATH/chef-config" || exit_with "unable to enter hab-cache directory" 1 | ||
bundle config --local build.nokogiri "${NOKOGIRI_CONFIG}" | ||
bundle config --local silence_root_warning 1 | ||
_bundle_install "${pkg_prefix}/bundle" | ||
) | ||
|
||
build_line "Executing bundle install inside source path. ($SRC_PATH)" | ||
_bundle_install "${pkg_prefix}/bundle" | ||
} | ||
|
||
do_install() { | ||
build_line "Copying directories from source to pkg_prefix" | ||
mkdir -p "${pkg_prefix}/chef" | ||
for dir in bin chef-bin chef-config lib chef.gemspec Gemfile Gemfile.lock; do | ||
cp -rv "${SRC_PATH}/${dir}" "${pkg_prefix}/chef/" | ||
done | ||
|
||
# If we generated them on install, bundler thinks our source is in $HAB_CACHE_SOURCE_PATH | ||
build_line "Generating binstubs with the correct path" | ||
( cd "$pkg_prefix/chef" || exit_with "unable to enter pkg prefix directory" 1 | ||
_bundle_install \ | ||
"${pkg_prefix}/bundle" \ | ||
--local \ | ||
--quiet \ | ||
--binstubs "${pkg_prefix}/bin" | ||
) | ||
|
||
build_line "Fixing bin/ruby and bin/env interpreters" | ||
fix_interpreter "${pkg_prefix}/bin/*" core/coreutils bin/env | ||
fix_interpreter "${pkg_prefix}/bin/*" core/ruby26 bin/ruby | ||
} | ||
|
||
do_end() { | ||
if [ "$(readlink /usr/bin/env)" = "$(pkg_interpreter_for core/coreutils bin/env)" ]; then | ||
build_line "Removing the symlink we created for '/usr/bin/env'" | ||
rm /usr/bin/env | ||
fi | ||
} | ||
|
||
do_strip() { | ||
return 0 | ||
} | ||
|
||
# Helper function to wrap up some repetitive bundle install flags | ||
_bundle_install() { | ||
local path | ||
path="$1" | ||
shift | ||
|
||
bundle install ${*:-} \ | ||
--jobs "$(nproc)" \ | ||
--without development:test \ | ||
--path "$path" \ | ||
--shebang="$(pkg_path_for "core/ruby26")/bin/ruby" \ | ||
--no-clean \ | ||
--retry 5 \ | ||
--standalone | ||
} |