Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@marcopg.org>2009-01-17 18:54:42 (GMT)
committer Marco Pesenti Gritti <marco@marcopg.org>2009-01-17 18:54:42 (GMT)
commitffe31992dd4796c576ab58b61d61bbb772b982f0 (patch)
tree5a3223f203269f98143e176899db886a5a025d9f /scripts
parentb2a9a81caa6abcc138b346f3aac6d73f5a0b10a8 (diff)
Big refactoring by David Farning.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/bundlemodule.py94
-rw-r--r--scripts/report.py7
-rw-r--r--scripts/sysdeps.py91
3 files changed, 1 insertions, 191 deletions
diff --git a/scripts/bundlemodule.py b/scripts/bundlemodule.py
deleted file mode 100644
index 3a662c1..0000000
--- a/scripts/bundlemodule.py
+++ /dev/null
@@ -1,94 +0,0 @@
-__metaclass__ = type
-
-import os
-
-from jhbuild.errors import BuildStateError
-from jhbuild.modtypes import Package, get_branch, register_module_type
-
-__all__ = [ 'BundleModule' ]
-
-class BundleModule(Package):
- type = 'bundle'
-
- STATE_CHECKOUT = 'checkout'
- STATE_FORCE_CHECKOUT = 'force_checkout'
- STATE_BUILD = 'build'
- STATE_INSTALL = 'install'
-
- def __init__(self, name, branch, dependencies=[], after=[]):
- Package.__init__(self, name, dependencies, after)
- self.branch = branch
-
- def get_srcdir(self, buildscript):
- return self.branch.srcdir
-
- def get_builddir(self, buildscript):
- return self.get_srcdir(buildscript)
-
- def get_revision(self):
- return self.branch.branchname
-
- def do_start(self, buildscript):
- pass
- do_start.next_state = STATE_CHECKOUT
- do_start.error_states = []
-
- def skip_checkout(self, buildscript, last_state):
- # skip the checkout stage if the nonetwork flag is set
- return buildscript.config.nonetwork
-
- def do_checkout(self, buildscript):
- srcdir = self.get_srcdir(buildscript)
- buildscript.set_action('Checking out', self)
- self.branch.checkout(buildscript)
- # did the checkout succeed?
- if not os.path.exists(srcdir):
- raise BuildStateError('source directory %s was not created'
- % srcdir)
- do_checkout.next_state = STATE_BUILD
- do_checkout.error_states = [STATE_FORCE_CHECKOUT]
-
- def skip_force_checkout(self, buildscript, last_state):
- return False
-
- def do_force_checkout(self, buildscript):
- buildscript.set_action('Checking out', self)
- self.branch.force_checkout(buildscript)
- do_force_checkout.next_state = STATE_BUILD
- do_force_checkout.error_states = [STATE_FORCE_CHECKOUT]
-
- def skip_build(self, buildscript, last_state):
- return buildscript.config.nobuild
-
- def do_build(self, buildscript):
- buildscript.set_action('Building', self)
- srcdir = self.get_srcdir(buildscript)
- builddir = self.get_builddir(buildscript)
- python = os.environ.get('PYTHON', 'python')
- cmd = [python, 'setup.py', 'build']
- buildscript.execute(cmd, cwd=srcdir)
- do_build.next_state = STATE_INSTALL
- do_build.error_states = [STATE_FORCE_CHECKOUT]
-
- def skip_install(self, buildscript, last_state):
- return buildscript.config.nobuild
-
- def do_install(self, buildscript):
- buildscript.set_action('Installing', self)
- srcdir = self.get_srcdir(buildscript)
- builddir = self.get_builddir(buildscript)
- python = os.environ.get('PYTHON', 'python')
- cmd = [python, 'setup.py', 'install']
- cmd.extend(['--prefix', buildscript.config.prefix])
- buildscript.execute(cmd, cwd=srcdir)
- buildscript.packagedb.add(self.name, self.get_revision() or '')
- do_install.next_state = Package.STATE_DONE
- do_install.error_states = []
-
-
-def parse_bundle(node, config, uri, repositories, default_repo):
- id = node.getAttribute('id')
- branch = get_branch(node, repositories, default_repo, config)
- return BundleModule(id, branch)
-
-register_module_type('bundle', parse_bundle)
diff --git a/scripts/report.py b/scripts/report.py
index 0ac8659..3617ee2 100644
--- a/scripts/report.py
+++ b/scripts/report.py
@@ -183,9 +183,4 @@ try:
register_command(cmd_report)
except ImportError:
- try:
- import cjson as json
- json.read = json.decode
- json.write = json.encode
- except ImportError:
- print 'Disable report, neither json-py nor python-cjson are not installed.'
+ print 'Disable report, json-py is not installed.'
diff --git a/scripts/sysdeps.py b/scripts/sysdeps.py
deleted file mode 100644
index b398cff..0000000
--- a/scripts/sysdeps.py
+++ /dev/null
@@ -1,91 +0,0 @@
-import os
-import subprocess
-
-from xml.dom import minidom
-
-scripts_dir = os.path.dirname(__file__)
-base_dir = os.path.dirname(scripts_dir)
-
-def get_distribution():
- if 'SJH_DISTRIBUTION' in os.environ:
- return os.environ['SJH_DISTRIBUTION'].split('-')
-
- # Fedora
- if os.path.exists('/etc/fedora-release'):
- name = 'fedora'
-
- f = open('/etc/fedora-release')
- full_name = f.read()
- f.close()
-
- if 'Rawhide' in full_name:
- version = 'rawhide'
- else:
- version = full_name.split(' ')[2]
-
- return name, version
-
- # Debian and Ubuntu
- try:
- out, err = subprocess.Popen(['lsb_release', '-is'],
- stdout=subprocess.PIPE).communicate()
- name = out.strip().lower()
-
- out, err = subprocess.Popen(['lsb_release', '-rs'],
- stdout=subprocess.PIPE).communicate()
- version = out.strip()
-
- if name == 'debian' and version == 'testing':
- version = 'unstable'
-
- return name, version
- except OSError:
- pass
-
- return None, None
-
-def check_package(package):
- name, version = get_distribution()
- if name == 'fedora':
- ret = subprocess.call(['rpm', '--quiet', '-q', package])
- return ret == 0
- elif name in ['ubuntu', 'debian']:
- cmd = ["dpkg-query", "-f='${status}'", "-W", package]
- out, err = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()
- return out.find('install ok installed') != -1
-
- return None
-
-def parse_dependencies():
- name, version = get_distribution()
- if name is None or version is None:
- return None
-
- filename = os.path.join(base_dir, 'config', 'sysdeps',
- '%s-%s.xml' % (name, version))
-
- if not os.path.exists(filename):
- return None
-
- return minidom.parse(filename)
-
-def get_packages():
- document = parse_dependencies()
- if document is None:
- return []
-
- packages = []
- root = document.childNodes[0]
-
- for node in root.childNodes:
- if node.nodeType == node.ELEMENT_NODE:
- if node.nodeName == 'package':
- name = node.getAttribute('name')
- if node.hasAttribute('source'):
- source = node.getAttribute('source')
- else:
- source = None
-
- packages.append((name, source))
-
- return packages