[ARVADOS] created: 2.1.0-632-g9516ddc71

Git user git at public.arvados.org
Tue Apr 13 14:58:04 UTC 2021


        at  9516ddc7158e077743a0daffb36e77a16a59c736 (commit)


commit 9516ddc7158e077743a0daffb36e77a16a59c736
Author: Ward Vandewege <ward at curii.com>
Date:   Tue Apr 13 10:57:25 2021 -0400

    17498: Build metapackages to ease the migration from python 2 to
           python3.
    
    Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward at curii.com>

diff --git a/build/package-build-dockerfiles/debian10/Dockerfile b/build/package-build-dockerfiles/debian10/Dockerfile
index d38af4664..f32093332 100644
--- a/build/package-build-dockerfiles/debian10/Dockerfile
+++ b/build/package-build-dockerfiles/debian10/Dockerfile
@@ -9,7 +9,7 @@ MAINTAINER Arvados Package Maintainers <packaging at arvados.org>
 ENV DEBIAN_FRONTEND noninteractive
 
 # Install dependencies.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python3 python3-setuptools python3-pip libcurl4-gnutls-dev curl git procps libattr1-dev libfuse-dev libgnutls28-dev libpq-dev unzip python3-venv python3-dev libpam-dev
+RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python3 python3-setuptools python3-pip libcurl4-gnutls-dev curl git procps libattr1-dev libfuse-dev libgnutls28-dev libpq-dev unzip python3-venv python3-dev libpam-dev equivs
 
 # Install virtualenv
 RUN /usr/bin/pip3 install 'virtualenv<20'
diff --git a/build/run-build-packages.sh b/build/run-build-packages.sh
index 9030072d5..99905dc0f 100755
--- a/build/run-build-packages.sh
+++ b/build/run-build-packages.sh
@@ -328,6 +328,14 @@ fpm_build_virtualenv "arvados-docker-cleaner" "services/dockercleaner" "python3"
 # The Arvados user activity tool
 fpm_build_virtualenv "arvados-user-activity" "tools/user-activity" "python3"
 
+# The python->python3 metapackages
+build_metapackage "arvados-fuse" "services/fuse"
+build_metapackage "arvados-python-client" "services/fuse"
+build_metapackage "arvados-cwl-runner" "sdk/cwl"
+build_metapackage "crunchstat-summary" "tools/crunchstat-summary"
+build_metapackage "arvados-docker-cleanere" "services/dockercleaner"
+build_metapackage "arvados-user-activity" "tools/user-activity"
+
 # The cwltest package, which lives out of tree
 cd "$WORKSPACE"
 if [[ -e "$WORKSPACE/cwltest" ]]; then
@@ -337,6 +345,9 @@ git clone https://github.com/common-workflow-language/cwltest.git
 # signal to our build script that we want a cwltest executable installed in /usr/bin/
 mkdir cwltest/bin && touch cwltest/bin/cwltest
 fpm_build_virtualenv "cwltest" "cwltest" "python3"
+# The python->python3 metapackage
+build_metapackage "cwltest" "cwltest"
+cd "$WORKSPACE"
 rm -rf "$WORKSPACE/cwltest"
 
 calculate_go_package_version arvados_server_version cmd/arvados-server
diff --git a/build/run-library.sh b/build/run-library.sh
index 513e8624e..59a9e4f47 100755
--- a/build/run-library.sh
+++ b/build/run-library.sh
@@ -621,9 +621,9 @@ 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 [[ "$FORMAT" != "rpm" ]]; then
+  #  COMMAND_ARR+=('--conflicts' "python-$PKG")
+  #fi
 
   if [[ "$DEBUG" != "0" ]]; then
     COMMAND_ARR+=('--verbose' '--log' 'info')
@@ -708,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 <<EOF
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: python-${BASE_NAME}
+Version: ${PYTHON_VERSION}-${ARVADOS_BUILDING_ITERATION}
+Maintainer: Arvados Package Maintainers <packaging at arvados.org>
+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 <<EOF
+Summary: metapackage to ease the upgrade to the Python 3 version of ${BASE_NAME}
+Name: python-${BASE_NAME}
+Version: ${PYTHON_VERSION}
+Release: ${ARVADOS_BUILDING_ITERATION}
+License: distributable
+
+Requires: python3-${BASE_NAME}
+
+%description
+This package is a metapackage that will automatically install the new version of
+python-${BASE_NAME} which is Python 3 based and has a different name.
+
+%prep
+
+%build
+
+%clean
+
+%install
+
+%post
+
+%files
+
+
+%changelog
+* Mon Apr 12 2021 Arvados Package Maintainers <packaging at arvados.org>
+- 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.

commit 760404a44cda03fd448fe8bdb1982937a183f887
Author: Ward Vandewege <ward at curii.com>
Date:   Tue Apr 13 10:55:24 2021 -0400

    17498: add a note about the python 3 package names in the upgrade guide.
    
    Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward at curii.com>

diff --git a/doc/admin/upgrading.html.textile.liquid b/doc/admin/upgrading.html.textile.liquid
index e0324f6b8..03e5992d1 100644
--- a/doc/admin/upgrading.html.textile.liquid
+++ b/doc/admin/upgrading.html.textile.liquid
@@ -70,6 +70,28 @@ h3. LoginCluster conflicts with other Login providers
 
 A satellite cluster that delegates its user login to a central user database must only have `Login.LoginCluster` set, or it will return an error.  This is a change in behavior, previously it would return an error if another login provider was _not_ configured, even though the provider would never be used.
 
+h3. Minimum supported Python version is now 3.5
+
+We no longer publish Python 2 based distribution packages for our Python components. There are equivalent packages based on Python 3, but their names are slightly different. If you were using the Python 2 based packages, you can install the Python 3 based package for a drop in replacement. On Debian and Ubuntu:
+
+<pre>
+    apt remove python-arvados-fuse && apt install python3-arvados-fuse
+    apt remove python-arvados-python-client && apt install python3-arvados-python-client
+    apt remove python-arvados-cwl-runner && apt install python3-arvados-cwl-runner
+    apt remove python-crunchstat-summary && apt install python3-crunchstat-summary
+    apt remove python-cwltest && apt install python3-cwltest
+</pre>
+
+On CentOS:
+
+<pre>
+    yum remove python-arvados-fuse && yum install python3-arvados-fuse
+    yum remove python-arvados-python-client && yum install python3-arvados-python-client
+    yum remove python-arvados-cwl-runner && yum install python3-arvados-cwl-runner
+    yum remove python-crunchstat-summary && yum install python3-crunchstat-summary
+    yum remove python-cwltest && yum install python3-cwltest
+</pre>
+
 h3. Minimum supported Ruby version is now 2.5
 
 The minimum supported Ruby version is now 2.5.  If you are running Arvados on Debian 9 or Ubuntu 16.04, you may need to switch to using RVM or upgrade your OS.  See "Install Ruby and Bundler":../install/ruby.html for more information.

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list