You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by mc...@apache.org on 2021/03/09 21:39:52 UTC

[cassandra-builds] branch trunk updated: Fix centos packaging for arm64

This is an automated email from the ASF dual-hosted git repository.

mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 79e2c43  Fix centos packaging for arm64
79e2c43 is described below

commit 79e2c4384f1906c60d1a1c9703624f0118d0a48a
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Thu Mar 4 10:47:32 2021 +0100

    Fix centos packaging for arm64
    
     patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-16477
---
 build-scripts/cassandra-rpm-packaging.sh |  6 ++--
 docker/build-debs.sh                     |  2 +-
 docker/build-rpms.sh                     |  4 +++
 docker/buster-image.docker               |  2 +-
 docker/centos7-image.docker              | 61 --------------------------------
 docker/centos8-image.docker              | 48 +++++++++++++++++++++++++
 docker/jessie-image.docker               |  2 +-
 7 files changed, 58 insertions(+), 67 deletions(-)

diff --git a/build-scripts/cassandra-rpm-packaging.sh b/build-scripts/cassandra-rpm-packaging.sh
index 54da42f..27499dd 100755
--- a/build-scripts/cassandra-rpm-packaging.sh
+++ b/build-scripts/cassandra-rpm-packaging.sh
@@ -26,7 +26,7 @@ java_version=$2
 command -v docker >/dev/null 2>&1 || { echo >&2 "docker needs to be installed"; exit 1; }
 (docker info >/dev/null 2>&1) || { echo >&2 "docker needs to running"; exit 1; }
 [ -d "${cassandra_builds_dir}" ] || { echo >&2 "cassandra-builds directory must exist"; exit 1; }
-[ -f "${cassandra_builds_dir}/docker/centos7-image.docker" ] || { echo >&2 "docker/centos7-image.docker must exist"; exit 1; }
+[ -f "${cassandra_builds_dir}/docker/centos8-image.docker" ] || { echo >&2 "docker/centos8-image.docker must exist"; exit 1; }
 [ -f "${cassandra_builds_dir}/docker/build-rpms.sh" ] || { echo >&2 "docker/build-rpms.sh must exist"; exit 1; }
 
 # remove any previous older built images
@@ -35,10 +35,10 @@ docker image prune --all --force --filter label=org.cassandra.buildenv=centos --
 pushd $cassandra_builds_dir
 
 # Create build images containing the build tool-chain, Java and an Apache Cassandra git working directory
-docker build --build-arg CASSANDRA_GIT_URL=$CASSANDRA_GIT_URL -t cassandra-artifacts-centos7:${sha} -f docker/centos7-image.docker docker/
+docker build --build-arg CASSANDRA_GIT_URL=$CASSANDRA_GIT_URL -t cassandra-artifacts-centos8:${sha} -f docker/centos8-image.docker docker/
 
 # Run build script through docker (specify branch, tag, or sha)
 chmod 777 "${rpm_dir}"
-docker run --rm -v "${rpm_dir}":/dist cassandra-artifacts-centos7:${sha} /home/build/build-rpms.sh ${sha} ${java_version}
+docker run --rm -v "${rpm_dir}":/dist cassandra-artifacts-centos8:${sha} /home/build/build-rpms.sh ${sha} ${java_version}
 
 popd
diff --git a/docker/build-debs.sh b/docker/build-debs.sh
index 5150e18..91313b3 100755
--- a/docker/build-debs.sh
+++ b/docker/build-debs.sh
@@ -105,7 +105,7 @@ if [ $buildxml_version != $git_version ]; then
 fi
 
 if [ $JAVA_VERSION = "11" ]; then
-   sudo update-java-alternatives --set java-1.11.0-openjdk-amd64
+   sudo update-java-alternatives --set java-1.11.0-openjdk-$(dpkg --print-architecture)
    export CASSANDRA_USE_JDK11=true
    echo "Cassandra will be built with Java 11"
 else
diff --git a/docker/build-rpms.sh b/docker/build-rpms.sh
index 87319e8..955688c 100755
--- a/docker/build-rpms.sh
+++ b/docker/build-rpms.sh
@@ -87,7 +87,10 @@ if [ $JAVA_VERSION = "11" ]; then
    echo "Cassandra will be built with Java 11"
 else
    echo "Cassandra will be built with Java 8"
+   sudo alternatives --set java $(alternatives --display java | grep 'family java-1.8.0-openjdk' | cut -d' ' -f1)
+   sudo alternatives --set javac $(alternatives --display javac | grep 'family java-1.8.0-openjdk' | cut -d' ' -f1)
 fi
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
 
 java -version
 javac -version
@@ -101,5 +104,6 @@ cp ./build/apache-cassandra-*-src.tar.gz ${RPM_BUILD_DIR}/SOURCES/
 # if CASSANDRA_VERSION is -alphaN, -betaN, -rcN, then rpmbuild fails on the '-' char; replace with '~'
 CASSANDRA_VERSION=${CASSANDRA_VERSION/-/\~}
 
+command -v python >/dev/null 2>&1 || sudo ln -s /usr/bin/python3 /usr/bin/python
 rpmbuild --define="version ${CASSANDRA_VERSION}" --define="revision ${CASSANDRA_REVISION}" -ba ./redhat/cassandra.spec
 cp $RPM_BUILD_DIR/SRPMS/*.rpm $RPM_BUILD_DIR/RPMS/noarch/*.rpm $RPM_DIST_DIR
diff --git a/docker/buster-image.docker b/docker/buster-image.docker
index b0a384f..5139a09 100644
--- a/docker/buster-image.docker
+++ b/docker/buster-image.docker
@@ -34,7 +34,7 @@ RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
 USER build
 
 # clone Cassandra and cache maven artifacts
-ARG CASSANDRA_GIT_URL=https://gitbox.apache.org/repos/asf/cassandra.git
+ARG CASSANDRA_GIT_URL=https://github.com/apache/cassandra.git
 RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
 WORKDIR ${CASSANDRA_DIR}
 
diff --git a/docker/centos7-image.docker b/docker/centos7-image.docker
deleted file mode 100644
index a6c0da8..0000000
--- a/docker/centos7-image.docker
+++ /dev/null
@@ -1,61 +0,0 @@
-FROM centos:7.0.1406
-
-ENV BUILD_HOME=/home/build
-ENV RPM_BUILD_DIR=$BUILD_HOME/rpmbuild
-ENV RPM_DIST_DIR=/dist
-ENV CASSANDRA_DIR=$BUILD_HOME/cassandra
-
-LABEL org.cassandra.buildenv=centos
-
-VOLUME ${RPM_DIST_DIR}
-
-# install deps
-RUN yum -y install \
-   yum-plugin-ovl \
-   ant \
-   ant-junit \
-   epel-release \
-   git \
-   java-1.8.0-openjdk-devel \
-   java-11-openjdk-devel \
-   make \
-   rpm-build \
-   sudo \
-   ; yum clean all
-
-# fix yum error after installing epel-release:
-#  Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
-# https://stackoverflow.com/questions/48320850/installing-epel-repository-on-centos-7-breaks-yum-functionality
-RUN yum -y update curl --disablerepo=epel
-
-# via epel-releases
-RUN yum -y install python2-pip
-
-# install ssl enabled urllib for retrieving python packages
-# this will produce some ssl related warnings, which will be resolved once the package has been installed
-RUN pip install 'idna<3' 'cryptography<3.4' urllib3[secure]
-
-# upgrade to modern pip version
-RUN pip install --upgrade 'pip<21'
-RUN pip install 'setuptools<45'
-
-# install Sphinx to generate docs
-RUN pip install \
-   Sphinx \
-   sphinx_rtd_theme
-
-# create and change to build user
-RUN adduser build
-RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
-chmod 0440 /etc/sudoers.d/build
-
-USER build
-
-RUN mkdir -p $RPM_BUILD_DIR/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
-
-# Clone Cassandra and cache maven artifacts
-ARG CASSANDRA_GIT_URL=https://gitbox.apache.org/repos/asf/cassandra.git
-RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
-WORKDIR $CASSANDRA_DIR
-
-COPY build-rpms.sh $BUILD_HOME/
diff --git a/docker/centos8-image.docker b/docker/centos8-image.docker
new file mode 100644
index 0000000..58f6565
--- /dev/null
+++ b/docker/centos8-image.docker
@@ -0,0 +1,48 @@
+FROM centos:8.3.2011
+
+ENV BUILD_HOME=/home/build
+ENV RPM_BUILD_DIR=$BUILD_HOME/rpmbuild
+ENV RPM_DIST_DIR=/dist
+ENV CASSANDRA_DIR=$BUILD_HOME/cassandra
+
+LABEL org.cassandra.buildenv=centos
+
+VOLUME ${RPM_DIST_DIR}
+
+# install deps
+RUN yum -y install \
+   ant \
+   git \
+   java-1.8.0-openjdk-devel \
+   java-11-openjdk-devel \
+   make \
+   rpm-build \
+   sudo \
+   python3-pip
+
+RUN curl http://mirror.centos.org/centos/7/os/x86_64/Packages/ant-junit-1.9.4-2.el7.noarch.rpm -o ant-junit-1.9.4-2.el7.noarch.rpm
+
+RUN rpm -i --nodeps ant-junit-1.9.4-2.el7.noarch.rpm
+
+RUN pip3 install --upgrade pip
+
+# install Sphinx to generate docs
+RUN pip3 install \
+   Sphinx \
+   sphinx_rtd_theme
+
+# create and change to build user
+RUN adduser build
+RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
+chmod 0440 /etc/sudoers.d/build
+
+USER build
+
+RUN mkdir -p $RPM_BUILD_DIR/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
+
+# Clone Cassandra and cache maven artifacts
+ARG CASSANDRA_GIT_URL=https://github.com/apache/cassandra.git
+RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
+WORKDIR $CASSANDRA_DIR
+
+COPY build-rpms.sh $BUILD_HOME/
diff --git a/docker/jessie-image.docker b/docker/jessie-image.docker
index 22c8a16..f3a8b69 100644
--- a/docker/jessie-image.docker
+++ b/docker/jessie-image.docker
@@ -35,7 +35,7 @@ RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
 USER build
 
 # clone Cassandra and cache maven artifacts
-ARG CASSANDRA_GIT_URL=https://gitbox.apache.org/repos/asf/cassandra.git
+ARG CASSANDRA_GIT_URL=https://github.com/apache/cassandra.git
 RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
 WORKDIR ${CASSANDRA_DIR}
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org