summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnie Hershey <ernie.hershey@10gen.com>2016-03-30 12:20:51 -0400
committerErnie Hershey <ernie.hershey@10gen.com>2016-03-30 15:16:36 -0400
commit46d994e5c186e9634896db0d434db0a635ffc60b (patch)
tree81c37b66e931671f34e6070a342594cc7a77ba12
parent7436d13815257851f08ed3cab1eb4d3d0fe09c8b (diff)
downloadmongo-46d994e5c186e9634896db0d434db0a635ffc60b.tar.gz
SERVER-23416 RPM support for zSeries
This also enables zSeries push tasks.
-rwxr-xr-xbuildscripts/packager-enterprise.py9
-rwxr-xr-xbuildscripts/packager.py27
-rw-r--r--etc/evergreen.yml9
3 files changed, 32 insertions, 13 deletions
diff --git a/buildscripts/packager-enterprise.py b/buildscripts/packager-enterprise.py
index e9dc1476c35..27534268c1a 100755
--- a/buildscripts/packager-enterprise.py
+++ b/buildscripts/packager-enterprise.py
@@ -42,7 +42,7 @@ import time
import urlparse
# The MongoDB names for the architectures we support.
-ARCH_CHOICES=["x86_64", "ppc64le"]
+ARCH_CHOICES=["x86_64", "ppc64le", "s390x"]
# Made up names for the flavors of distribution we package for.
DISTROS=["suse", "debian","redhat","ubuntu","amazon"]
@@ -116,6 +116,11 @@ class EnterpriseDistro(packager.Distro):
return [ "rhel71" ]
else:
return []
+ if arch == "s390x":
+ if self.n == 'redhat':
+ return [ "rhel72" ]
+ else:
+ return []
if re.search("(redhat|fedora|centos)", self.n):
return [ "rhel70", "rhel62", "rhel57" ]
@@ -263,7 +268,7 @@ def make_deb_repo(repo, distro, build_os, spec):
Label: mongodb
Suite: %s
Codename: %s/mongodb-enterprise
-Architectures: amd64 ppc64el
+Architectures: amd64 ppc64el s390x
Components: %s
Description: MongoDB packages
""" % (distro.repo_os_version(build_os), distro.repo_os_version(build_os), distro.repo_component())
diff --git a/buildscripts/packager.py b/buildscripts/packager.py
index 29df7fd2b7f..a64980ec905 100755
--- a/buildscripts/packager.py
+++ b/buildscripts/packager.py
@@ -132,14 +132,28 @@ class Distro(object):
return "mongodb"
def archname(self, arch):
+ """Return the packaging system's architecture name.
+ Power and x86 have different names for apt/yum (ppc64le/ppc64el
+ and x86_64/amd64)
+ """
if re.search("^(debian|ubuntu)", self.n):
if arch == "ppc64le":
return "ppc64el"
- return "i386" if arch.endswith("86") else "amd64"
+ elif arch == "s390x":
+ return "s390x"
+ elif arch.endswith("86"):
+ return "i386"
+ else:
+ return "amd64"
elif re.search("^(suse|centos|redhat|fedora|amazon)", self.n):
if arch == "ppc64le":
return "ppc64le"
- return "i686" if arch.endswith("86") else "x86_64"
+ elif arch == "s390x":
+ return "s390x"
+ elif arch.endswith("86"):
+ return "i686"
+ else:
+ return "x86_64"
else:
raise Exception("BUG: unsupported platform?")
@@ -232,17 +246,16 @@ class Distro(object):
raise Exception("BUG: unsupported platform?")
def build_os(self, arch):
- """Return the build os label in the binary package to download ("rhel55", "rhel62" and "rhel70"
- for redhat, "ubuntu1204" and "ubuntu1404" for Ubuntu, "debian71" for Debian), and "suse11"
- for SUSE)"""
+ """Return the build os label in the binary package to download (e.g. "rhel55" for redhat,
+ "ubuntu1204" for ubuntu, "debian71" for debian, "suse11" for suse, etc.)"""
# Community builds only support amd64
- if arch not in ['x86_64', 'ppc64le']:
+ if arch not in ['x86_64', 'ppc64le', 's390x']:
raise Exception("BUG: unsupported architecture (%s)" % arch)
if re.search("(suse)", self.n):
return [ "suse11", "suse12" ]
elif re.search("(redhat|fedora|centos)", self.n):
- return [ "rhel70", "rhel71", "rhel62", "rhel55" ]
+ return [ "rhel70", "rhel71", "rhel72", "rhel62", "rhel55" ]
elif self.n == 'amazon':
return [ "amazon" ]
elif self.n == 'ubuntu':
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index ca2bb193b1f..403b97e5dec 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -94,6 +94,7 @@ variables:
- enterprise-rhel-62-64-bit
- enterprise-rhel-70-64-bit
- enterprise-rhel-71-ppc64le
+ - enterprise-rhel-72-s390x
- enterprise-suse11-64
- enterprise-suse12-64
- enterprise-ubuntu1204-64
@@ -4510,7 +4511,7 @@ buildvariants:
compile_flags: --ssl MONGO_DISTMOD=rhel72 --release -j3 CCFLAGS="-march=z196 -mtune=zEC12" CXX=/opt/mongodbtoolchain/v1/bin/g++ CC=/opt/mongodbtoolchain/v1/bin/gcc
num_jobs_available: 2
test_flags: --continueOnFailure --excludeWithAnyTags=requires_mmapv1
- # has_packages: true
+ has_packages: true
packager_script: packager-enterprise.py
packager_arch: s390x
packager_distro: rhel72
@@ -4622,9 +4623,9 @@ buildvariants:
# - name: tool
- name: tool_WT
- name: unittests
-# - name: push
-# distros:
-# - rhel55-test
+ - name: push
+ distros:
+ - rhel55-test
###########################################
# Ubuntu buildvariants #