summaryrefslogtreecommitdiff
path: root/buildscripts
diff options
context:
space:
mode:
authorRichard Kreuter <richard@10gen.com>2011-03-02 14:10:09 -0500
committerRichard Kreuter <richard@10gen.com>2011-03-02 14:10:50 -0500
commit571db521fa6f26c0524d178de489691249fbb978 (patch)
tree00bb587ed7c56731369e55c0c438ac960f8dacfd /buildscripts
parent1d972fce782c675c4f2af2c7e2eacbec17b0ff49 (diff)
downloadmongo-571db521fa6f26c0524d178de489691249fbb978.tar.gz
Add support for package revision/release numbers in packager.py.
Diffstat (limited to 'buildscripts')
-rw-r--r--buildscripts/packager.py43
1 files changed, 33 insertions, 10 deletions
diff --git a/buildscripts/packager.py b/buildscripts/packager.py
index 234e1fbcba5..d857beb7236 100644
--- a/buildscripts/packager.py
+++ b/buildscripts/packager.py
@@ -68,6 +68,8 @@ class Spec(object):
# Catch-all for any other parameters to the packaging.
i = 2 if self.suf else 1
self.params = dict([s.split("=") for s in tup[i:]])
+ for key in self.params.keys():
+ assert(key in ["suffix", "revision"])
def version(self):
return self.ver
@@ -377,7 +379,7 @@ def make_deb(distro, arch, spec, srcdir):
ensure_dir(r)
# FIXME: see if shutil.copyfile or something can do this without
# much pain.
- sysassert(["cp", "-v", sdir+"../%s%s_%s_%s.deb"%(distro.pkgbase(), suffix, spec.pversion(distro), distro_arch), r])
+ sysassert(["cp", "-v", sdir+"../%s%s_%s%s_%s.deb"%(distro.pkgbase(), suffix, spec.pversion(distro), "-"+spec.param("revision") if spec.param("revision") else"", distro_arch), r])
return r
def make_deb_repo(repo):
@@ -510,13 +512,26 @@ def move_repos_into_place(src, dst):
def write_debian_changelog(path, spec, srcdir):
oldcwd=os.getcwd()
os.chdir(srcdir)
+ preamble=""
+ if spec.param("revision"):
+ preamble="""mongodb%s (%s-%s) unstable; urgency=low
+
+ * Bump revision number
+
+ -- Richard Kreuter <richard@10gen.com> %s
+
+""" % (spec.suffix(), spec.pversion(Distro("debian")), spec.param("revision"), time.strftime("%a, %d %b %Y %H:%m:%S %z"))
try:
- s=backtick(["sh", "-c", "git archive r%s debian/changelog | tar xOf -" % spec.version()])
+ s=preamble+backtick(["sh", "-c", "git archive r%s debian/changelog | tar xOf -" % spec.version()])
finally:
os.chdir(oldcwd)
f=open(path, 'w')
lines=s.split("\n")
- lines=[re.sub("^mongodb \\(.*\\)", "mongodb%s (%s)" % (spec.suffix(), spec.pversion(Distro("debian"))), l) for l in lines]
+ # If the first line starts with "mongodb", it's not a revision
+ # preamble, and so frob the version number.
+ lines[0]=re.sub("^mongodb \\(.*\\)", "mongodb (%s)" % (spec.pversion(Distro("debian"))), lines[0])
+ # Rewrite every changelog entry starting in mongodb<space>
+ lines=[re.sub("^mongodb ", "mongodb%s " % (spec.suffix()), l) for l in lines]
lines=[re.sub("^ --", " --", l) for l in lines]
s="\n".join(lines)
try:
@@ -778,7 +793,7 @@ def write_rpm_spec_file(path, spec):
Conflicts: @@PACKAGE_CONFLICTS@@
Obsoletes: @@PACKAGE_OBSOLETES@@
Version: @@PACKAGE_VERSION@@
-Release: mongodb_1%{?dist}
+Release: mongodb_@@PACKAGE_REVISION@@%{?dist}
Summary: mongo client shell and tools
License: AGPL 3.0
URL: http://www.mongodb.org
@@ -830,13 +845,15 @@ mkdir -p $RPM_BUILD_ROOT/usr
cp -rv @@BINARYDIR@@/usr/bin $RPM_BUILD_ROOT/usr
mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1
cp debian/*.1 $RPM_BUILD_ROOT/usr/share/man/man1/
+# FIXME: remove this rm when mongosniff is back in the package
+rm -v $RPM_BUILD_ROOT/usr/share/man/man1/mongosniff.1*
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
-cp rpm/init.d-mongod $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
+cp -v rpm/init.d-mongod $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
chmod a+x $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
mkdir -p $RPM_BUILD_ROOT/etc
-cp rpm/mongod.conf $RPM_BUILD_ROOT/etc/mongod.conf
+cp -v rpm/mongod.conf $RPM_BUILD_ROOT/etc/mongod.conf
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
-cp rpm/mongod.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/mongod
+cp -v rpm/mongod.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/mongod
mkdir -p $RPM_BUILD_ROOT/var/lib/mongo
mkdir -p $RPM_BUILD_ROOT/var/log/mongo
touch $RPM_BUILD_ROOT/var/log/mongo/mongod.log
@@ -884,14 +901,16 @@ fi
%{_bindir}/mongorestore
%{_bindir}/mongostat
%{_bindir}/bsondump
+# FIXME: uncomment when mongosniff is back in the package
+#%{_bindir}/mongosniff
%{_mandir}/man1/mongo.1*
-%{_mandir}/man1/mongod.1*
%{_mandir}/man1/mongodump.1*
%{_mandir}/man1/mongoexport.1*
%{_mandir}/man1/mongofiles.1*
%{_mandir}/man1/mongoimport.1*
-%{_mandir}/man1/mongosniff.1*
+# FIXME: uncomment when mongosniff is back in the package
+#%{_mandir}/man1/mongosniff.1*
%{_mandir}/man1/mongostat.1*
%{_mandir}/man1/mongorestore.1*
@@ -900,7 +919,7 @@ fi
%config(noreplace) /etc/mongod.conf
%{_bindir}/mongod
%{_bindir}/mongos
-#%{_mandir}/man1/mongod.1*
+%{_mandir}/man1/mongod.1*
%{_mandir}/man1/mongos.1*
/etc/rc.d/init.d/mongod
/etc/sysconfig/mongod
@@ -919,6 +938,10 @@ fi
suffix=spec.suffix()
s=re.sub("@@PACKAGE_BASENAME@@", "mongo%s" % suffix, s)
s=re.sub("@@PACKAGE_VERSION@@", spec.pversion(Distro("redhat")), s)
+ # FIXME, maybe: the RPM guide says that Release numbers ought to
+ # be integers starting at 1, but we use "mongodb_1{%dist}",
+ # whatever the hell that means.
+ s=re.sub("@@PACKAGE_REVISION@@", str(int(spec.param("revision"))+1) if spec.param("revision") else "1", s)
s=re.sub("@@BINARYDIR@@", BINARYDIR, s)
conflict_suffixes=["", "-10gen", "-10gen-unstable"]
conflict_suffixes.remove(suffix)