You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by va...@apache.org on 2023/03/27 04:41:26 UTC

[couchdb-pkg] 01/01: Add arm64/ppc64le/s390x arches for ubuntu

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

vatamane pushed a commit to branch package-improvements
in repository https://gitbox.apache.org/repos/asf/couchdb-pkg.git

commit 53a4b6a539a2d8caf4655c9e3dd10cdd2f3765fa
Author: Nick Vatamaniuc <va...@apache.org>
AuthorDate: Mon Mar 27 00:27:30 2023 -0400

    Add arm64/ppc64le/s390x arches for ubuntu
    
    Add s390x for bullseye to make everything even, so bullseye and focal
    now both are our multi-arch package targets with the same 4
    architectures.
    
    One issue with ubuntu focal was lintian has a bug so we disable it
    unless we're running in x86_64.
    
    Also fix el7 and el8 "server" aliases. Previously we hand copy and
    pasted el7 and el8 dirs to Server versions so turn them into automatic
    upload targets.
    
    Fix: https://github.com/apache/couchdb/issues/4375
    
    Fix: https://github.com/apache/couchdb-pkg/issues/103
---
 Makefile | 33 ++++++++++++++++++++++++++++++++-
 build.sh | 31 +++++++++++++++++++++++--------
 2 files changed, 55 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index 763dd49..97424f5 100644
--- a/Makefile
+++ b/Makefile
@@ -91,6 +91,14 @@ ppc64le-debian-bullseye: SPIDERMONKEY_DEV=libmozjs-78-dev
 ppc64le-debian-bullseye: SM_VER=78
 ppc64le-debian-bullseye: bullseye
 
+s390x-debian-bullseye: PLATFORM=bullseye
+s390x-debian-bullseye: DIST=debian-bullseye
+s390x-debian-bullseye: SPIDERMONKEY=libmozjs-78-0
+s390x-debian-bullseye: SPIDERMONKEY_DEV=libmozjs-78-dev
+s390x-debian-bullseye: SM_VER=78
+s390x-debian-bullseye: bullseye
+
+
 bullseye: debian
 
 
@@ -109,6 +117,27 @@ ubuntu-focal: SM_VER=68
 ubuntu-focal: focal
 focal: debian
 
+arm64-ubuntu-focal: PLATFORM=focal
+arm64-ubuntu-focal: DIST=ubuntu-focal
+arm64-ubuntu-focal: SPIDERMONKEY=libmozjs-68-0
+arm64-ubuntu-focal: SPIDERMONKEY_DEV=libmozjs-68-dev
+arm64-ubuntu-focal: SM_VER=68
+arm64-ubuntu-focal: focal
+
+ppc64le-ubuntu-focal: PLATFORM=focal
+ppc64le-ubuntu-focal: DIST=ubuntu-focal
+ppc64le-ubuntu-focal: SPIDERMONKEY=libmozjs-68-0
+ppc64le-ubuntu-focal: SPIDERMONKEY_DEV=libmozjs-68-dev
+ppc64le-ubuntu-focal: SM_VER=68
+ppc64le-ubuntu-focal: focal
+
+s390x-ubuntu-focal: PLATFORM=focal
+s390x-ubuntu-focal: DIST=ubuntu-focal
+s390x-ubuntu-focal: SPIDERMONKEY=libmozjs-68-0
+s390x-ubuntu-focal: SPIDERMONKEY_DEV=libmozjs-68-dev
+s390x-ubuntu-focal: SM_VER=68
+s390x-ubuntu-focal: focal
+
 # Ubuntu 22.04 (Jammy)
 ubuntu-jammy: PLATFORM=jammy
 ubuntu-jammy: DIST=ubuntu-jammy
@@ -190,8 +219,10 @@ update-changelog:
 dpkg:
 	cd $(DISTDIR) && dpkg-buildpackage -b -us -uc
 
+# lintian happens to be stuck on arm64 builds on some ubuntu/debian versions
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=964770
 lintian:
-	cd $(DISTDIR)/.. && lintian --profile couchdb couch*.deb || true
+	if [ "$(shell arch)" = "x86_64" ]; then cd $(DISTDIR)/.. && lintian --profile couchdb couch*.deb || true ; fi
 
 # ######################################
 link-couch-dist:
diff --git a/build.sh b/build.sh
index 8bea4c8..a65209a 100755
--- a/build.sh
+++ b/build.sh
@@ -31,10 +31,10 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 DEBIANS="debian-buster debian-bullseye"
 UBUNTUS="ubuntu-bionic ubuntu-focal ubuntu-jammy"
 CENTOSES="centos-7 centos-8"
-XPLAT_BASE="debian-bullseye"
-XPLAT_ARCHES="arm64 ppc64le"
+XPLAT_BASES="debian-bullseye ubuntu-focal"
+XPLAT_ARCHES="arm64 ppc64le s390x"
 BINARY_API="https://apache.jfrog.io/artifactory"
-ERLANGVERSION=${ERLANGVERSION:-24.3.4.7}
+ERLANGVERSION=${ERLANGVERSION:-24.3.4.10}
 
 split-os-ver() {
   OLDIFS=$IFS
@@ -107,8 +107,10 @@ build-all-couch() {
   for plat in $DEBIANS $UBUNTUS $CENTOSES; do
     build-couch $plat $*
   done
-  for arch in $XPLAT_ARCHES; do
-    CONTAINERARCH="${arch}" build-couch $XPLAT_BASE
+  for base in $XPLAT_BASES; do
+    for arch in $XPLAT_ARCHES; do
+      CONTAINERARCH="${arch}" build-couch ${base}
+    done
   done
 }
 
@@ -150,15 +152,28 @@ upload-couch() {
   done
   for PKG in $(ls pkgs/couch/$1/*.rpm 2>/dev/null); do
     # Example filename: couchdb-2.3.0-1.el7.x86_64.rpm.asc
+    #                   couchdb-3.3.1.1.1-1.el7.x86_64.rpm
     fname=${PKG##*/}
     REPO="couchdb-rpm"
-    # better not put any extra . in the filename...
-    DIST=$(echo $fname | cut -d. -f 4)
-    PKGARCH=$(echo $fname | cut -d. -f 5)
+    DIST=$(echo $fname | cut -d- -f 3 | cut -d. -f 2)
+    PKGARCH=$(echo $fname | cut -d- -f 3 | cut -d. -f 3)
     PKGVERSION=$(echo $fname | cut -d- -f 2)
     RELPATH="${DIST}/${PKGARCH}/${fname}"
     SUFFIX=""
     binary-upload
+    if [ ${DIST} == "el7" ]; then
+        # see https://github.com/apache/couchdb-pkg/issues/103
+        DIST="el7Server"
+        RELPATH="${DIST}/${PKGARCH}/${fname}"
+        SUFFIX=""
+        binary-upload
+    elif [ ${DIST} == "el8" ]; then
+        # see https://github.com/apache/couchdb-pkg/issues/103
+        DIST="el8Server"
+        RELPATH="${DIST}/${PKGARCH}/${fname}"
+        SUFFIX=""
+        binary-upload
+    fi
   done
   echo "Recalculating Debian repo metadata..."
   local ret="$(curl \