X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4fa1cccccf752fd58dd2b10b1df4275a6de16ea2..dc421ad7078f9478d3a96a1250f89ffc2b13e897:/build/run-library.sh diff --git a/build/run-library.sh b/build/run-library.sh index 3e6c9f8584..bd4d1aeb1f 100755 --- a/build/run-library.sh +++ b/build/run-library.sh @@ -130,9 +130,9 @@ calculate_go_package_version() { checkdirs+=("$1") shift done - if grep -qr git.arvados.org/arvados .; then - checkdirs+=(sdk/go lib) - fi + # Even our rails packages (version calculation happens here!) depend on a go component (arvados-server) + # Everything depends on the build directory. + checkdirs+=(sdk/go lib build) local timestamp=0 for dir in ${checkdirs[@]}; do cd "$WORKSPACE" @@ -210,7 +210,7 @@ package_go_so() { "$WORKSPACE/apache-2.0.txt=/usr/share/doc/$pkg/apache-2.0.txt" ) if [[ -e "$WORKSPACE/$src_path/pam-configs-arvados" ]]; then - fpmargs+=("$WORKSPACE/$src_path/pam-configs-arvados=/usr/share/pam-configs/arvados-go") + fpmargs+=("$WORKSPACE/$src_path/pam-configs-arvados=/usr/share/doc/$pkg/pam-configs-arvados-go") fi if [[ -e "$WORKSPACE/$src_path/README" ]]; then fpmargs+=("$WORKSPACE/$src_path/README=/usr/share/doc/$pkg/README") @@ -231,10 +231,6 @@ default_iteration() { [[ ${BASH_REMATCH[1]} -le $LICENSE_PACKAGE_TS ]]; then iteration=2 fi - if [[ $package_type =~ ^python ]]; then - # Fix --iteration for #9242. - iteration=2 - fi echo $iteration } @@ -257,7 +253,7 @@ rails_package_version() { fi local version="$(version_from_git)" if [ $pkgname = "arvados-api-server" -o $pkgname = "arvados-workbench" ] ; then - calculate_go_package_version version cmd/arvados-server "$srcdir" + calculate_go_package_version version cmd/arvados-server "$srcdir" fi echo $version } @@ -487,18 +483,9 @@ fpm_build_virtualenv () { fi PACKAGE_PREFIX=$PYTHON3_PKG_PREFIX ;; - python) - # All Arvados Python2 packages depend on Python 2.7. - # Make sure we build with that for consistency. - python=python2.7 - pip=pip - PACKAGE_PREFIX=$PYTHON2_PKG_PREFIX - ;; esac - if [[ "$PKG" != "libpam-arvados" ]] && - [[ "$PKG" != "arvados-node-manager" ]] && - [[ "$PKG" != "arvados-docker-cleaner" ]]; then + if [[ "$PKG" != "arvados-docker-cleaner" ]]; then PYTHON_PKG=$PACKAGE_PREFIX-$PKG else # Exception to our package naming convention @@ -538,13 +525,19 @@ fpm_build_virtualenv () { fi # Determine the package version from the generated sdist archive - PYTHON_VERSION=${ARVADOS_BUILDING_VERSION:-$(awk '($1 == "Version:"){print $2}' *.egg-info/PKG-INFO)} + if [[ -n "$ARVADOS_BUILDING_VERSION" ]] ; then + UNFILTERED_PYTHON_VERSION=$ARVADOS_BUILDING_VERSION + PYTHON_VERSION=$(echo -n $ARVADOS_BUILDING_VERSION | sed s/~dev/.dev/g | sed s/~rc/rc/g) + else + PYTHON_VERSION=$(awk '($1 == "Version:"){print $2}' *.egg-info/PKG-INFO) + UNFILTERED_PYTHON_VERSION=$(echo -n $PYTHON_VERSION | sed s/\.dev/~dev/g |sed 's/\([0-9]\)rc/\1~rc/g') + fi # See if we actually need to build this package; does it exist already? # We can't do this earlier than here, because we need PYTHON_VERSION... # This isn't so bad; the sdist call above is pretty quick compared to # the invocation of virtualenv and fpm, below. - if ! test_package_presence "$PYTHON_PKG" $PYTHON_VERSION $PACKAGE_TYPE $ARVADOS_BUILDING_ITERATION; then + if ! test_package_presence "$PYTHON_PKG" $UNFILTERED_PYTHON_VERSION $PACKAGE_TYPE $ARVADOS_BUILDING_ITERATION; then return 0 fi @@ -651,30 +644,11 @@ fpm_build_virtualenv () { LICENSE_STRING=`grep license $WORKSPACE/$PKG_DIR/setup.py|cut -f2 -d=|sed -e "s/[',\\"]//g"` COMMAND_ARR+=('--license' "$LICENSE_STRING") - # 12271 - As FPM-generated packages don't include scripts by default, the - # 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 section too, so we need to add this parameter to properly - # 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 - - if [[ "$PKG" == "arvados-python-client" ]] || [[ "$PKG" == "arvados-fuse" ]]; then - if [[ "$python" == "python2.7" ]]; then - COMMAND_ARR+=('--conflicts' "$PYTHON3_PKG_PREFIX-$PKG") - else - COMMAND_ARR+=('--conflicts' "$PYTHON2_PKG_PREFIX-$PKG") - fi - fi - if [[ "$DEBUG" != "0" ]]; then COMMAND_ARR+=('--verbose' '--log' 'info') fi - COMMAND_ARR+=('-v' "$PYTHON_VERSION") + COMMAND_ARR+=('-v' $(echo -n "$PYTHON_VERSION" | sed s/.dev/~dev/g | sed s/rc/~rc/g)) COMMAND_ARR+=('--iteration' "$ARVADOS_BUILDING_ITERATION") COMMAND_ARR+=('-n' "$PYTHON_PKG") COMMAND_ARR+=('-C' "build") @@ -685,11 +659,7 @@ fpm_build_virtualenv () { COMMAND_ARR+=('--before-remove' "${WORKSPACE}/build/go-python-package-scripts/prerm") fi - if [[ "$python" == "python2.7" ]]; then - COMMAND_ARR+=('--depends' "$PYTHON2_PACKAGE") - else - COMMAND_ARR+=('--depends' "$PYTHON3_PACKAGE") - fi + COMMAND_ARR+=('--depends' "$PYTHON3_PACKAGE") # avoid warning COMMAND_ARR+=('--deb-no-default-config-files') @@ -714,7 +684,7 @@ fpm_build_virtualenv () { done # make sure the systemd service file ends up in the right place - # used by arvados-docker-cleaner and arvados-node-manager + # used by arvados-docker-cleaner if [[ -e "${systemd_unit}" ]]; then COMMAND_ARR+=("usr/share/$python/dist/$PKG/share/doc/$PKG/$PKG.service=/lib/systemd/system/$PKG.service") fi @@ -733,15 +703,6 @@ fpm_build_virtualenv () { done fi - # the libpam module should place a few files in the correct place for the pam - # subsystem - if [[ -e "$WORKSPACE/$PKG_DIR/dist/build/usr/share/$python/dist/$PYTHON_PKG/lib/security/libpam_arvados.py" ]]; then - COMMAND_ARR+=("usr/share/$python/dist/$PYTHON_PKG/lib/security/libpam_arvados.py=/usr/lib/security/") - fi - if [[ -e "$WORKSPACE/$PKG_DIR/dist/build/usr/share/$python/dist/$PYTHON_PKG/share/pam-configs/arvados" ]]; then - COMMAND_ARR+=("usr/share/$python/dist/$PYTHON_PKG/share/pam-configs/arvados=/usr/share/pam-configs/") - fi - # the python-arvados-cwl-runner package comes with cwltool, expose that version if [[ -e "$WORKSPACE/$PKG_DIR/dist/build/usr/share/python2.7/dist/python-arvados-cwl-runner/bin/cwltool" ]]; then COMMAND_ARR+=("usr/share/python2.7/dist/python-arvados-cwl-runner/bin/cwltool=/usr/bin/") @@ -749,6 +710,8 @@ fpm_build_virtualenv () { COMMAND_ARR+=(".") + debug_echo -e "\n${COMMAND_ARR[@]}\n" + FPM_RESULTS=$("${COMMAND_ARR[@]}") FPM_EXIT_CODE=$? @@ -802,17 +765,6 @@ fpm_build () { COMMAND_ARR+=(--deb-ignore-iteration-in-dependencies) fi - # 12271 - As FPM-generated packages don't include scripts by default, the - # 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 section too, so we need to add this parameter to properly - # 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 - if [[ "$DEBUG" != "0" ]]; then COMMAND_ARR+=('--verbose' '--log' 'info') fi @@ -883,13 +835,13 @@ fpm_build () { COMMAND_ARR+=('--exclude' "$i") done + COMMAND_ARR+=("${fpm_args[@]}") + # Append remaining function arguments directly to fpm's command line. for i; do COMMAND_ARR+=("$i") done - COMMAND_ARR+=("${fpm_args[@]}") - COMMAND_ARR+=("$PACKAGE") debug_echo -e "\n${COMMAND_ARR[@]}\n"