# older packages.
LICENSE_PACKAGE_TS=20151208015500
-if [[ -z $ARVADOS_BUILDING_VERSION ]]; then
+if [[ -z "$ARVADOS_BUILDING_VERSION" ]]; then
RAILS_PACKAGE_ITERATION=8
else
- RAILS_PACKAGE_ITERATION=
+ RAILS_PACKAGE_ITERATION="$ARVADOS_BUILDING_ITERATION"
fi
debug_echo () {
return
fi
- local git_ts git_hash prefix
- if [[ -n "$1" ]] ; then
- prefix="$1"
- else
- prefix="0.1"
- fi
+ ARVADOS_BUILDING_VERSION=`git describe --abbrev=0`
+ local git_ts
- declare $(format_last_commit_here "git_ts=%ct git_hash=%h")
- echo "${prefix}.$(date -ud "@$git_ts" +%Y%m%d%H%M%S).$git_hash"
+ declare $(format_last_commit_here "git_ts=%ct")
+ ARVADOS_BUILDING_VERSION="$ARVADOS_BUILDING_VERSION.$(date -ud "@$git_ts" +%Y%m%d%H%M%S)"
+ echo "$ARVADOS_BUILDING_VERSION"
}
nohash_version_from_git() {
handle_python_package () {
# This function assumes the current working directory is the python package directory
- if [ -n "$(find dist -name "*-$(nohash_version_from_git).tar.gz" -print -quit)" ]; then
+ if [ -n "$(find dist -name "*-$(version_from_git).$(date -ud "@$git_ts" +%Y%m%d%H%M%S).tar.gz" -print -quit)" ]; then
# This package doesn't need rebuilding.
return
fi
declare -a checkdirs=(vendor)
if grep -qr git.curoverse.com/arvados .; then
checkdirs+=(sdk/go)
+ if [[ "$prog" -eq "crunch-dispatch-slurm" ]]; then
+ checkdirs+=(lib/dispatchcloud)
+ fi
fi
for dir in ${checkdirs[@]}; do
cd "$GOPATH/src/git.curoverse.com/arvados.git/$dir"
go get -ldflags "-X main.version=${version}" "git.curoverse.com/arvados.git/$src_path"
- declare -a switches=()
+ local -a switches=()
systemd_unit="$WORKSPACE/${src_path}/${prog}.service"
if [[ -e "${systemd_unit}" ]]; then
switches+=(
default_iteration() {
if [[ -n "$ARVADOS_BUILDING_VERSION" ]]; then
+ echo "$ARVADOS_BUILDING_ITERATION"
return
fi
local package_name="$1"; shift
fi
if [[ "$iteration" == "" ]]; then
- iteration="$(default_iteration "$pkgname" "$version" "$pkgtype")"
+ iteration="$(default_iteration "$pkgname" "$version" "$pkgtype")"
fi
if [[ "$arch" == "" ]]; then
return 0
fi
local srcdir="$1"; shift
+ cd "$srcdir"
local license_path="$1"; shift
local version="$(version_from_git)"
local scripts_dir="$(mktemp --tmpdir -d "$pkgname-XXXXXXXX.scripts")" && \
--before-remove "$scripts_dir/prerm"
--after-remove "$scripts_dir/postrm")
if [[ -z "$ARVADOS_BUILDING_VERSION" ]]; then
- switches+=(--iteration=$RAILS_PACKAGE_ITERATION)
+ switches+=(--iteration $RAILS_PACKAGE_ITERATION)
fi
# For some reason fpm excludes need to not start with /.
local exclude_root="${railsdir#/}"
switches+=(-x "$exclude_root/$exclude")
done
fpm_build "${pos_args[@]}" "${switches[@]}" \
+ -x "$exclude_root/vendor/cache-*" \
-x "$exclude_root/vendor/bundle" "$@" "$license_arg"
rm -rf "$scripts_dir"
}
fi
local default_iteration_value="$(default_iteration "$PACKAGE" "$VERSION" "$PACKAGE_TYPE")"
+ local python=""
case "$PACKAGE_TYPE" in
python)
# All Arvados Python2 packages depend on Python 2.7.
# Make sure we build with that for consistency.
+ python=python2.7
set -- "$@" --python-bin python2.7 \
--python-easyinstall "$EASY_INSTALL2" \
--python-package-name-prefix "$PYTHON2_PKG_PREFIX" \
# necessary arguments to fpm's command line later, after we're
# done handling positional arguments.
PACKAGE_TYPE=python
+ python=python3
set -- "$@" --python-bin python3 \
--python-easyinstall "$EASY_INSTALL3" \
--python-package-name-prefix "$PYTHON3_PKG_PREFIX" \
# packages cleanup on upgrade depends on files being listed on the %files
# section in the generated SPEC files. To remove DIRECTORIES, they need to
# be listed in that sectiontoo, so we need to add this parameter to properly
- # remove lingering dirs.
- if [[ rpm = "$FORMAT" ]]; then
+ # remove lingering dirs. But this only works for python2: if used on
+ # python33, it includes dirs like /opt/rh/python33 that belong to
+ # other packages.
+ if [[ "$FORMAT" = rpm ]] && [[ "$python" = python2.7 ]]; then
COMMAND_ARR+=('--rpm-auto-add-directories')
fi