[Treepkg-commits] r518 - trunk/recipes/gnupg
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Tue May 31 11:25:51 CEST 2011
Author: bricks
Date: 2011-05-31 11:25:51 +0200 (Tue, 31 May 2011)
New Revision: 518
Modified:
trunk/recipes/gnupg/base.py
Log:
Include Andres changes to build gnupg from git with testing for scratchbox
Modified: trunk/recipes/gnupg/base.py
===================================================================
--- trunk/recipes/gnupg/base.py 2011-05-31 08:58:13 UTC (rev 517)
+++ trunk/recipes/gnupg/base.py 2011-05-31 09:25:51 UTC (rev 518)
@@ -11,6 +11,7 @@
import re
import inspect
import new
+import shutil
import treepkg.util
import treepkg.packager
@@ -43,8 +44,8 @@
raise RuntimeError("Could not determine the version number from %s"
% filename)
- def determine_package_version(self, directory):
- return "%s+svn%s" % (self.orig_source_version(directory), self.revision)
+ def determine_upstream_version(self, directory=None):
+ return self.orig_source_version(directory)
def do_package(self):
pkgbaseversion, pkgbasedir = self.export_sources()
@@ -57,9 +58,9 @@
# file. autogen.sh normally determines it from svn, but here it
# ran on a copy that did not include the .svn subdirectories and
# thus could not find the svn revision.
- treepkg.util.replace_in_file(os.path.join(pkgbasedir, "configure"),
- re.escape(orig_version) + "-svn0",
- orig_version + "-svn%s" % self.revision)
+ #treepkg.util.replace_in_file(os.path.join(pkgbasedir, "configure"),
+ # re.escape(orig_version) + "-git0",
+ # orig_version + "-git%s" % self.revision)
pkgbasename = self.pkg_basename + "_" + pkgbaseversion
origtargz = os.path.join(self.work_dir,
@@ -67,7 +68,7 @@
self.create_tarball(origtargz, self.work_dir,
os.path.basename(pkgbasedir))
- changemsg = ("Update to rev. %s" % (self.revision,))
+ changemsg = ("Update to git rev. %s" % (self.revision,))
self.copy_debian_directory(pkgbasedir, pkgbaseversion,
changemsg)
@@ -92,15 +93,20 @@
createtarball_script = """\
#! /bin/bash
-set -e
+set -e
-apt-get --assume-yes --force-yes install %(builddeps)s
-
+# Check if we are in a scratchbox
+if [ -n "${SBOX_UNAME_MACHINE+x}" ]; then
+ fakeroot apt-get --assume-yes --force-yes install %(builddeps)s
+else
+ apt-get --assume-yes --force-yes install %(builddeps)s
+fi
+export AUTOMAKE_SUFFIX=-1.10
# copy the source tree to a directory that's under pbuilder control so
# that it gets removed along with the build environment. Otherwise we
# end up with a directory containing files that cannot be removed by
# treepkg
-workdir=/tmp/work
+workdir=/tmp/treepkg_gpg_work
cp -a %(basedir)s $workdir
cd $workdir
@@ -111,13 +117,33 @@
sed -e '/AUTOMAKE_OPTIONS/ s/[a-zA-Z0-9-]*dist[a-zA-Z0-9-]*//g' \
Makefile.am.orig > Makefile.am
+# Run Autogen
./autogen.sh
+
+# Tweak configure to contain svn revision numbers
+cp configure configure.orig
+sed -e "s/-svn0/-svn%(svn_revision)s/g" configure.orig > configure
+
+echo ./configure --enable-maintainer-mode $add_cfg_opts
./configure --enable-maintainer-mode
# revert autoconf changes, so that the original Makefile.am ends up in
# the tarball
mv Makefile.am.orig Makefile.am
+# Evil hack for a fig2dev bug in scratchbox
+fakefigs="gnupg-card-architecture libgcrypt-modules fips-fsm"
+
+if [ -n "${SBOX_UNAME_MACHINE+x}" ]; then
+ for i in $fakefigs; do
+ if [ -f doc/$i.fig ]; then
+ touch doc/$i.eps
+ touch doc/$i.png
+ touch doc/$i.pdf
+ fi
+ done
+fi
+
%(make_dist_command)s
mv *.tar.gz %(origtargz)s
@@ -147,22 +173,25 @@
self.pkgbasename = self.pkg_basename + "_" + self.pkgbaseversion
self.origtargz = os.path.join(self.work_dir,
self.pkgbasename + ".orig.tar.gz")
-
script = (self.createtarball_script
% dict(builddeps=" ".join(self.track.dependencies_required()
| self.tarball_dependencies),
basedir=copied_working_copy,
origtargz=self.origtargz,
+ svn_revision=self.revision,
make_dist_command=self.make_dist_command))
script_name = os.path.join(self.work_dir, "createtarball")
treepkg.util.writefile(script_name, script, 0755)
treepkg.util.ensure_directory(self.src_dir)
treepkg.util.ensure_directory(self.log_dir)
- self.builder.run_script([script_name],
- logfile=os.path.join(self.log_dir,
- "tarball_log.txt"),
- bindmounts=[self.work_dir, self.src_dir])
+ try:
+ self.builder.run_script([script_name],
+ logfile=os.path.join(self.log_dir,
+ "tarball_log.txt"),
+ bindmounts=[self.work_dir, self.src_dir])
+ finally:
+ shutil.rmtree("/tmp/treepkg_gpg_work", ignore_errors=True)
def create_orig_dir(self):
"""Unpacks the tarball created by create_original_tarball into work_dir
@@ -185,7 +214,7 @@
self.create_original_tarball()
orig_dir = self.create_orig_dir()
- changemsg = ("Update to rev. %s" % (self.revision,))
+ changemsg = ("Update to git rev. %s" % (self.revision,))
self.copy_debian_directory(orig_dir, self.pkgbaseversion, changemsg)
self.create_source_package(orig_dir, self.origtargz)
@@ -194,7 +223,7 @@
def define_gnupg_packager(pkg_basename,
tarball_dependencies=("autoconf", "automake",
- "texinfo", "subversion"),
+ "texinfo"),
make_dist_command=None):
"""Create a SourcePackager for a GnuPG package in the caller's globals().
This is a helper function for the modules in the recipe.gnupg package.
More information about the Treepkg-commits
mailing list