0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 01:21:03 +01:00

SERVER-11077 Debian Enterprise packaging

This is a minimal change to support Debian, almost
identical to Ubuntu packaging and Community Debian
packaging.
This commit is contained in:
Ernie Hershey 2014-06-13 19:11:56 -04:00
parent 4c208580ad
commit 82feb98aae
2 changed files with 33 additions and 12 deletions

View File

@ -13,8 +13,8 @@ repodir=/var/www-enterprise/repo.consolidated
gpg_recip='<richard@10gen.com>'
stable_branch="2.4"
unstable_branch="2.5"
stable_branch="2.6"
unstable_branch="2.7"
echo "Using directory: $repodir"
@ -72,7 +72,7 @@ echo
for debian_dir in "$repodir"/apt/ubuntu "$repodir"/apt/debian
do
cd "$debian_dir"
for section_dir in $(find dists -type d -name multiverse)
for section_dir in $(find dists -type d -name multiverse -o name main)
do
for arch_dir in "$section_dir"/{binary-i386,binary-amd64}
do
@ -111,6 +111,7 @@ done
# /var/www-enterprise/repo.consolidated/yum/redhat/5/mongodb-enterprise/unstable -> 2.5
# /var/www-enterprise/repo.consolidated/yum/redhat/6/mongodb-enterprise/unstable -> 2.5
# /var/www-enterprise/repo.consolidated/apt/ubuntu/dists/precise/mongodb-enterprise/unstable -> 2.5
# /var/www-enterprise/repo.consolidated/apt/debian/dists/wheezy/mongodb-enterprise/unstable -> 2.5
#
for unstable_branch_dir in "$repodir"/yum/redhat/*/*/$unstable_branch "$repodir"/apt/debian/dists/*/*/$unstable_branch "$repodir"/apt/ubuntu/dists/*/*/$unstable_branch
do

View File

@ -49,7 +49,7 @@ REPOPATH="/var/www/repo"
ARCHES=["x86_64"]
# Made up names for the flavors of distribution we package for.
DISTROS=["redhat","ubuntu"]
DISTROS=["debian","redhat","ubuntu"]
class Spec(object):
@ -138,18 +138,31 @@ class Distro(object):
repo/apt/ubuntu/dists/precise/mongodb-enterprise/2.5/multiverse/binary-amd64
repo/apt/ubuntu/dists/precise/mongodb-enterprise/2.5/multiverse/binary-i386
repo/apt/debian/dists/wheezy/mongodb-enterprise/2.5/main/binary-amd64
repo/apt/debian/dists/wheezy/mongodb-enterprise/2.5/main/binary-i386
repo/yum/redhat/6/mongodb-enterprise/2.5/x86_64
yum/redhat/6/mongodb-enterprise/2.5/i386
"""
if re.search("^(debian|ubuntu)", self.n):
return "repo/apt/%s/dists/%s/mongodb-enterprise/%s/multiverse/binary-%s/" % (self.n, self.repo_os_version(build_os), spec.branch(), self.archname(arch))
return "repo/apt/%s/dists/%s/mongodb-enterprise/%s/%s/binary-%s/" % (self.n, self.repo_os_version(build_os), spec.branch(), self.repo_component(), self.archname(arch))
elif re.search("(redhat|fedora|centos)", self.n):
return "repo/yum/%s/%s/mongodb-enterprise/%s/%s/RPMS/" % (self.n, self.repo_os_version(build_os), spec.branch(), self.archname(arch))
else:
raise Exception("BUG: unsupported platform?")
def repo_component(self):
"""Return the name of the section/component/pool we are publishing into -
e.g. "multiverse" for Ubuntu, "main" for debian."""
if self.n == 'ubuntu':
return "multiverse"
elif self.n == 'debian':
return "main"
else:
raise Exception("unsupported distro: %s" % self.n)
def repo_os_version(self, build_os):
"""Return an OS version suitable for package repo directory
naming - e.g. 5, 6 or 7 for redhat/centos, "precise," "wheezy," etc.
@ -161,6 +174,11 @@ class Distro(object):
return "precise"
else:
raise Exception("unsupported build_os: %s" % build_os)
elif self.n == 'debian':
if build_os == 'debian71':
return 'wheezy'
else:
raise Exception("unsupported build_os: %s" % build_os)
else:
raise Exception("unsupported distro: %s" % self.n)
@ -174,12 +192,14 @@ class Distro(object):
def build_os(self):
"""Return the build os label in the binary package to download ("rhel57" and "rhel62"
for redhat, "ubuntu1204" for Ubuntu and Debian)"""
for redhat, "ubuntu1204" for Ubuntu and "debian71" for Debian)"""
if re.search("^(debian|ubuntu)", self.n):
return [ "ubuntu1204" ]
elif re.search("(redhat|fedora|centos)", self.n):
if re.search("(redhat|fedora|centos)", self.n):
return [ "rhel62", "rhel57" ]
elif self.n == 'ubuntu':
return [ "ubuntu1204" ]
elif self.n == 'debian':
return [ "debian71" ]
else:
raise Exception("BUG: unsupported platform?")
@ -421,7 +441,7 @@ def make_deb_repo(repo, distro, build_os, spec):
# Note: the Debian repository Packages files must be generated
# very carefully in order to be usable.
oldpwd=os.getcwd()
os.chdir(repo+"../../../../")
os.chdir(repo+"../../../../../../")
try:
dirs=set([os.path.dirname(deb)[2:] for deb in backtick(["find", ".", "-name", "*.deb"]).split()])
for d in dirs:
@ -447,9 +467,9 @@ Label: mongodb
Suite: mongodb
Codename: %s/mongodb-enterprise
Architectures: amd64
Components: multiverse
Components: %s
Description: MongoDB packages
""" % (distro.repo_os_version(build_os))
""" % (distro.repo_os_version(build_os), distro.repo_component())
if os.path.exists(repo+"../../Release"):
os.unlink(repo+"../../Release")
if os.path.exists(repo+"../../Release.gpg"):