MAINTAINER Arvados Package Maintainers <packaging@arvados.org>
# Install dependencies.
-RUN yum -q -y install make automake gcc gcc-c++ libyaml-devel patch readline-devel zlib-devel libffi-devel openssl-devel bzip2 libtool bison sqlite-devel rpm-build git perl-ExtUtils-MakeMaker libattr-devel nss-devel libcurl-devel which tar unzip scl-utils centos-release-scl postgresql-devel python-devel python-setuptools fuse-devel xz-libs git python-virtualenv wget pam-devel
+RUN yum -q -y install make automake gcc gcc-c++ libyaml-devel patch readline-devel zlib-devel libffi-devel openssl-devel bzip2 libtool bison sqlite-devel rpm-build git perl-ExtUtils-MakeMaker libattr-devel nss-devel libcurl-devel which tar unzip scl-utils centos-release-scl postgresql-devel fuse-devel xz-libs git wget pam-devel
# Install RVM
ADD generated/mpapis.asc /tmp/
# Need to "touch" RPM database to workaround bug in interaction between
# overlayfs and yum (https://bugzilla.redhat.com/show_bug.cgi?id=1213602)
RUN touch /var/lib/rpm/* && yum -q -y install rh-python36
-RUN scl enable rh-python36 "easy_install-3.6 pip" && easy_install-2.7 pip
+RUN scl enable rh-python36 "easy_install-3.6 pip"
# Add epel, we need it for the python-pam dependency
-RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-RUN rpm -ivh epel-release-latest-7.noarch.rpm
+#RUN wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+#RUN rpm -ivh epel-release-latest-7.noarch.rpm
RUN git clone --depth 1 git://git.arvados.org/arvados.git /tmp/arvados && cd /tmp/arvados/services/api && /usr/local/rvm/bin/rvm-exec default bundle && cd /tmp/arvados/apps/workbench && /usr/local/rvm/bin/rvm-exec default bundle
# The version of setuptools that comes with CentOS is way too old
-RUN pip install --upgrade 'setuptools<45'
+RUN scl enable rh-python36 "easy_install-3.6 pip install 'setuptools<45'"
ENV WORKSPACE /arvados
CMD ["scl", "enable", "rh-python36", "/usr/local/rvm/bin/rvm-exec default bash /jenkins/run-build-packages.sh --target centos7"]
## dont use debian:10 here since the word 'buster' is used for rvm precompiled binaries
FROM debian:buster
-MAINTAINER Ward Vandewege <wvandewege@veritasgenetics.com>
+MAINTAINER Arvados Package Maintainers <packaging@arvados.org>
ENV DEBIAN_FRONTEND noninteractive
# Install dependencies.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-setuptools python3-pip libcurl4-gnutls-dev curl git procps libattr1-dev libfuse-dev libgnutls28-dev libpq-dev python-pip 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
# Install virtualenv
-RUN /usr/bin/pip install 'virtualenv<20'
+RUN /usr/bin/pip3 install 'virtualenv<20'
# Install RVM
ADD generated/mpapis.asc /tmp/
## dont use debian:9 here since the word 'stretch' is used for rvm precompiled binaries
FROM debian:stretch
-MAINTAINER Nico Cesar <nico@curoverse.com>
+MAINTAINER Arvados Package Maintainers <packaging@arvados.org>
ENV DEBIAN_FRONTEND noninteractive
# Install dependencies.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-setuptools python3-pip libcurl4-gnutls-dev curl git procps libattr1-dev libfuse-dev libgnutls28-dev libpq-dev python-pip 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
# Install virtualenv
-RUN /usr/bin/pip install 'virtualenv<20'
+RUN /usr/bin/pip3 install 'virtualenv<20'
# Install RVM
ADD generated/mpapis.asc /tmp/
ENV DEBIAN_FRONTEND noninteractive
# Install dependencies.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-setuptools python3-pip libcurl4-gnutls-dev libgnutls-dev curl git libattr1-dev libfuse-dev libpq-dev python-pip unzip tzdata python3-venv python3-dev libpam-dev
+RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python3 python-setuptools python3-setuptools python3-pip libcurl4-gnutls-dev libgnutls-dev curl git libattr1-dev libfuse-dev libpq-dev unzip tzdata python3-venv python3-dev libpam-dev
# Install virtualenv
-RUN /usr/bin/pip install 'virtualenv<20'
+RUN /usr/bin/pip3 install 'virtualenv<20'
# Install RVM
ADD generated/mpapis.asc /tmp/
ENV DEBIAN_FRONTEND noninteractive
# Install dependencies.
-RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python2.7-dev python3 python-setuptools python3-pip libcurl4-gnutls-dev libgnutls28-dev curl git libattr1-dev libfuse-dev libpq-dev python-pip unzip tzdata python3-venv python3-dev libpam-dev
+RUN /usr/bin/apt-get update && /usr/bin/apt-get install -q -y python3 python3-pip libcurl4-gnutls-dev libgnutls28-dev curl git libattr1-dev libfuse-dev libpq-dev unzip tzdata python3-venv python3-dev libpam-dev
# Install virtualenv
-RUN /usr/bin/pip install 'virtualenv<20'
+RUN /usr/bin/pip3 install 'virtualenv<20'
# Install RVM
ADD generated/mpapis.asc /tmp/
--- /dev/null
+#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+set -e
+
+arvados-docker-cleaner -h >/dev/null
+++ /dev/null
-test-package-python27-python-arvados-cwl-runner.sh
\ No newline at end of file
+++ /dev/null
-test-package-python27-python-arvados-fuse.sh
\ No newline at end of file
+++ /dev/null
-test-package-python27-python-arvados-python-client.sh
\ No newline at end of file
+++ /dev/null
-test-package-python27-python-cwltest.sh
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-# Copyright (C) The Arvados Authors. All rights reserved.
-#
-# SPDX-License-Identifier: AGPL-3.0
-
-set -e
-
-arv-put --version
-
-/usr/share/python2.7/dist/python-arvados-python-client/bin/python2.7 << EOF
-import arvados
-print "Successfully imported arvados"
-EOF
set -e
-arvados-cwl-runner --version
+arvados-cwl-runner --version >/dev/null
set -e
-arv-put --version
+arv-put --version >/dev/null
/usr/share/python3/dist/python3-arvados-python-client/bin/python3 << EOF
import arvados
--- /dev/null
+#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+set -e
+
+crunchstat-summary -h >/dev/null
set -e
-arvados-cwl-runner --version
+cwltest -h >/dev/null
+++ /dev/null
-test-package-python27-python-arvados-fuse.sh
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+set -e
+
+arv-mount --version
--- /dev/null
+#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+set -e
+
+arvados-cwl-runner --version >/dev/null
--- /dev/null
+#!/bin/sh
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+set -e
+
+crunchstat-summary -h >/dev/null
#
# SPDX-License-Identifier: AGPL-3.0
-exec python <<EOF
-import cwltest
-EOF
+set -e
+
+cwltest -h >/dev/null
if test -z "$packages" ; then
packages="arvados-api-server
arvados-client
+ arvados-controller
+ arvados-dispatch-cloud
arvados-docker-cleaner
arvados-git-httpd
- arvados-node-manager
+ arvados-health
+ arvados-server
arvados-src
+ arvados-sync-groups
arvados-workbench
+ arvados-workbench2
+ arvados-ws
crunch-dispatch-local
crunch-dispatch-slurm
crunch-run
crunchstat
+ keepproxy
+ keepstore
keep-balance
keep-block-check
- keepproxy
keep-rsync
- keepstore
+ keep-exercise
+ keep-rsync
+ keep-block-check
keep-web
libarvados-perl
- libpam-arvados
- libpam-arvados-go
- python-arvados-fuse
- python-arvados-python-client
- python-arvados-cwl-runner"
+ libpam-arvados-go"
+ if [[ "$TARGET" =~ "centos" ]]; then
+ packages="$packages
+ rh-python36-python-cwltest
+ rh-python36-python-arvados-fuse
+ rh-python36-python-arvados-python-client
+ rh-python36-python-arvados-cwl-runner
+ rh-python36-python-crunchstat-summary"
+ else
+ packages="$packages
+ python3-cwltest
+ python3-arvados-fuse
+ python3-arvados-python-client
+ python3-arvados-cwl-runner
+ python3-crunchstat-summary"
+ fi
fi
FINAL_EXITCODE=0
DASHQ_UNLESS_DEBUG=
fi
-declare -a PYTHON_BACKPORTS PYTHON3_BACKPORTS
+declare -a PYTHON3_BACKPORTS
-PYTHON2_VERSION=2.7
PYTHON3_VERSION=$(python3 -c 'import sys; print("{v.major}.{v.minor}".format(v=sys.version_info))')
## These defaults are suitable for any Debian-based distribution.
# You can customize them as needed in distro sections below.
-PYTHON2_PACKAGE=python$PYTHON2_VERSION
-PYTHON2_PKG_PREFIX=python
-PYTHON2_PREFIX=/usr
-PYTHON2_INSTALL_LIB=lib/python$PYTHON2_VERSION/dist-packages
-
PYTHON3_PACKAGE=python$PYTHON3_VERSION
PYTHON3_PKG_PREFIX=python3
PYTHON3_PREFIX=/usr
;;
centos*)
FORMAT=rpm
- PYTHON2_PACKAGE=$(rpm -qf "$(which python$PYTHON2_VERSION)" --queryformat '%{NAME}\n')
- PYTHON2_PKG_PREFIX=$PYTHON2_PACKAGE
- PYTHON2_INSTALL_LIB=lib/python$PYTHON2_VERSION/site-packages
PYTHON3_PACKAGE=$(rpm -qf "$(which python$PYTHON3_VERSION)" --queryformat '%{NAME}\n')
PYTHON3_PKG_PREFIX=$PYTHON3_PACKAGE
PYTHON3_PREFIX=/opt/rh/rh-python36/root/usr
package_go_so lib/pam pam_arvados.so libpam-arvados-go \
"Arvados PAM authentication module"
-# The Python SDK - Should be built first because it's needed by others
-fpm_build_virtualenv "arvados-python-client" "sdk/python"
-
# The Python SDK - Python3 package
fpm_build_virtualenv "arvados-python-client" "sdk/python" "python3"
-# Arvados cwl runner - Only supports Python3 now
+# Arvados cwl runner - Python3 package
fpm_build_virtualenv "arvados-cwl-runner" "sdk/cwl" "python3"
-# The PAM module
-fpm_build_virtualenv "libpam-arvados" "sdk/pam"
-
-# The FUSE driver
-fpm_build_virtualenv "arvados-fuse" "services/fuse"
-
# The FUSE driver - Python3 package
fpm_build_virtualenv "arvados-fuse" "services/fuse" "python3"
-# The node manager
-fpm_build_virtualenv "arvados-node-manager" "services/nodemanager"
-
# The Arvados crunchstat-summary tool
-fpm_build_virtualenv "crunchstat-summary" "tools/crunchstat-summary"
+fpm_build_virtualenv "crunchstat-summary" "tools/crunchstat-summary" "python3"
# The Docker image cleaner
fpm_build_virtualenv "arvados-docker-cleaner" "services/dockercleaner" "python3"
rm -rf "$WORKSPACE/cwltest"
fi
git clone https://github.com/common-workflow-language/cwltest.git
-# last release to support python 2.7
-(cd cwltest && git checkout 1.0.20190906212748)
# 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"
+fpm_build_virtualenv "cwltest" "cwltest" "python3"
rm -rf "$WORKSPACE/cwltest"
calculate_go_package_version arvados_server_version cmd/arvados-server
[[ ${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
}
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" ]] &&
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+=('--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')
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