X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/045e3127cb48845c7d988d01488c055f02ae2ec3..9516ddc7158e077743a0daffb36e77a16a59c736:/build/run-library.sh diff --git a/build/run-library.sh b/build/run-library.sh index 9efc8028b5..59a9e4f47d 100755 --- a/build/run-library.sh +++ b/build/run-library.sh @@ -621,6 +621,10 @@ fpm_build_virtualenv () { LICENSE_STRING=`grep license $WORKSPACE/$PKG_DIR/setup.py|cut -f2 -d=|sed -e "s/[',\\"]//g"` COMMAND_ARR+=('--license' "$LICENSE_STRING") + #if [[ "$FORMAT" != "rpm" ]]; then + # COMMAND_ARR+=('--conflicts' "python-$PKG") + #fi + if [[ "$DEBUG" != "0" ]]; then COMMAND_ARR+=('--verbose' '--log' 'info') fi @@ -704,6 +708,132 @@ fpm_build_virtualenv () { echo } +# build_metapackage builds meta packages that help with the python to python 3 package migration +build_metapackage() { + # base package name (e.g. arvados-python-client) + BASE_NAME=$1 + shift + PKG_DIR=$1 + shift + + if [[ -n "$ONLY_BUILD" ]] && [[ "python-$BASE_NAME" != "$ONLY_BUILD" ]]; then + return 0 + fi + + if [[ -z "$ARVADOS_BUILDING_VERSION" ]]; then + cd $WORKSPACE/$PKG_DIR + pwd + rm -rf dist/* + + # Get the latest setuptools + if ! $pip install $DASHQ_UNLESS_DEBUG $CACHE_FLAG -U 'setuptools<45'; then + echo "Error, unable to upgrade setuptools with" + echo " $pip install $DASHQ_UNLESS_DEBUG $CACHE_FLAG -U 'setuptools<45'" + exit 1 + fi + # filter a useless warning (when building the cwltest package) from the stderr output + if ! python3 setup.py $DASHQ_UNLESS_DEBUG sdist 2> >(grep -v 'warning: no previously-included files matching'); then + echo "Error, unable to run python3 setup.py sdist for $PKG" + exit 1 + fi + + 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') + + else + UNFILTERED_PYTHON_VERSION=$ARVADOS_BUILDING_VERSION + PYTHON_VERSION=$(echo -n $ARVADOS_BUILDING_VERSION | sed s/~dev/.dev/g | sed s/~rc/rc/g) + fi + + cd - >$STDOUT_IF_DEBUG + if [[ -d "$BASE_NAME" ]]; then + rm -rf $BASE_NAME + fi + mkdir $BASE_NAME + cd $BASE_NAME + + if [[ "$FORMAT" == "deb" ]]; then + cat >ns-control < +Depends: python3-${BASE_NAME} +Description: metapackage to ease the upgrade to the Pyhon 3 version of ${BASE_NAME} + This package is a metapackage that will automatically install the new version of + ${BASE_NAME} which is Python 3 based and has a different name. +EOF + + /usr/bin/equivs-build ns-control + if [[ $? -ne 0 ]]; then + echo "Error running 'equivs-build ns-control', is the 'equivs' package installed?" + return 1 + fi + elif [[ "$FORMAT" == "rpm" ]]; then + cat >meta.spec < +- initial release +EOF + + /usr/bin/rpmbuild -ba meta.spec + if [[ $? -ne 0 ]]; then + echo "Error running 'rpmbuild -ba meta.spec', is the 'rpm-build' package installed?" + return 1 + else + mv /root/rpmbuild/RPMS/x86_64/python-${BASE_NAME}*.${FORMAT} . + if [[ $? -ne 0 ]]; then + echo "Error finding rpm file output of 'rpmbuild -ba meta.spec'" + return 1 + fi + fi + else + echo "Unknown format" + return 1 + fi + + if [[ $EXITCODE -ne 0 ]]; then + return 1 + else + echo `ls *$FORMAT` + mv *$FORMAT $WORKSPACE/packages/$TARGET/ + fi + + # clean up + cd - >$STDOUT_IF_DEBUG + if [[ -d "$BASE_NAME" ]]; then + rm -rf $BASE_NAME + fi +} + # Build packages for everything fpm_build () { # Source dir where fpm-info.sh (if any) will be found.