* a bit of refactoring
* and make bug 368 explicit: relative thingie does not work yet
This commit is contained in:
+47
-46
@@ -34,7 +34,7 @@ class PisiBuildError(pisi.Error):
|
||||
|
||||
|
||||
# Helper Functions
|
||||
def getFileType(path, pinfoList):
|
||||
def get_file_type(path, pinfoList):
|
||||
"""Return the file type of a path according to the given PathInfo
|
||||
list"""
|
||||
# The usage of depth is somewhat confusing. It is used for finding
|
||||
@@ -53,7 +53,7 @@ def getFileType(path, pinfoList):
|
||||
ftype = pinfo.fileType
|
||||
return ftype
|
||||
|
||||
def checkPathCollision(package, pkgList):
|
||||
def check_path_collision(package, pkgList):
|
||||
"""This function will check for collision of paths in a package with
|
||||
the paths of packages in pkgList. The return value will be the
|
||||
list containing the paths that collide."""
|
||||
@@ -81,7 +81,7 @@ class PisiBuild:
|
||||
self.spec = self.ctx.spec
|
||||
self.sourceArchive = SourceArchive(self.ctx)
|
||||
|
||||
self.setEnvorinmentVars()
|
||||
self.set_environment_vars()
|
||||
|
||||
self.actionLocals = None
|
||||
self.actionGlobals = None
|
||||
@@ -94,11 +94,11 @@ class PisiBuild:
|
||||
ui.error(e + '\n')
|
||||
raise PisiBuildError, "invalid PSPEC file %s" % self.ctx.pspecfile
|
||||
|
||||
def setState(self, state):
|
||||
def set_state(self, state):
|
||||
stateFile = os.path.join(self.srcDir, "pisiBuildState")
|
||||
open(stateFile, "w").write(state)
|
||||
|
||||
def getState(self):
|
||||
def get_state(self):
|
||||
stateFile = os.path.join(self.srcDir, "pisiBuildState")
|
||||
if not os.path.exists(stateFile): # no state
|
||||
return None
|
||||
@@ -110,25 +110,25 @@ class PisiBuild:
|
||||
ui.info("Building PISI source package: %s\n" % self.spec.source.name)
|
||||
util.xtermTitle("Building PISI source package: %s\n" % self.spec.source.name)
|
||||
|
||||
self.compileActionScript()
|
||||
self.compile_action_script()
|
||||
|
||||
self.fetchSourceArchive()
|
||||
self.fetch_source_archive()
|
||||
|
||||
self.unpackSourceArchive()
|
||||
self.unpack_source_archive()
|
||||
|
||||
self.solveBuildDependencies()
|
||||
self.solve_build_dependencies()
|
||||
|
||||
# apply the patches and prepare a source directory for build.
|
||||
self.applyPatches()
|
||||
self.apply_patches()
|
||||
|
||||
self.runSetupAction()
|
||||
self.runBuildAction()
|
||||
self.runInstallAction()
|
||||
self.run_setup_action()
|
||||
self.run_build_action()
|
||||
self.run_install_action()
|
||||
|
||||
# after all, we are ready to build/prepare the packages
|
||||
self.buildPackages()
|
||||
self.build_packages()
|
||||
|
||||
def setEnvorinmentVars(self):
|
||||
def set_environment_vars(self):
|
||||
"""Sets the environment variables for actions API to use"""
|
||||
evn = {
|
||||
"PKG_DIR": self.ctx.pkg_dir(),
|
||||
@@ -140,30 +140,30 @@ class PisiBuild:
|
||||
}
|
||||
os.environ.update(evn)
|
||||
|
||||
def fetchSourceArchive(self):
|
||||
def fetch_source_archive(self):
|
||||
ui.info("Fetching source from: %s\n" % self.spec.source.archiveUri)
|
||||
self.sourceArchive.fetch()
|
||||
ui.info("Source archive is stored: %s/%s\n"
|
||||
%(config.archives_dir(), self.spec.source.archiveName))
|
||||
|
||||
def unpackSourceArchive(self):
|
||||
def unpack_source_archive(self):
|
||||
ui.info("Unpacking archive...")
|
||||
self.sourceArchive.unpack()
|
||||
ui.info(" unpacked (%s)\n" % self.ctx.pkg_work_dir())
|
||||
self.setState("unpacked")
|
||||
self.set_state("unpacked")
|
||||
|
||||
def runSetupAction(self):
|
||||
def run_setup_action(self):
|
||||
# Run configure, build and install phase
|
||||
ui.action("Setting up source...\n")
|
||||
self.runActionFunction(const.setup_func)
|
||||
self.setState("setupaction")
|
||||
self.run_action_function(const.setup_func)
|
||||
self.set_state("setupaction")
|
||||
|
||||
def runBuildAction(self):
|
||||
def run_build_action(self):
|
||||
ui.action("Building source...\n")
|
||||
self.runActionFunction(const.build_func)
|
||||
self.setState("buildaction")
|
||||
self.run_action_function(const.build_func)
|
||||
self.set_state("buildaction")
|
||||
|
||||
def runInstallAction(self):
|
||||
def run_install_action(self):
|
||||
ui.action("Installing...\n")
|
||||
|
||||
# Before install make sure install_dir is clean
|
||||
@@ -171,10 +171,10 @@ class PisiBuild:
|
||||
util.clean_dir(self.ctx.pkg_install_dir())
|
||||
|
||||
# install function is mandatory!
|
||||
self.runActionFunction(const.install_func, True)
|
||||
self.setState("installaction")
|
||||
self.run_action_function(const.install_func, True)
|
||||
self.set_state("installaction")
|
||||
|
||||
def compileActionScript(self):
|
||||
def compile_action_script(self):
|
||||
"""Compiles actions.py and sets the actionLocals and actionGlobals"""
|
||||
specdir = os.path.dirname(self.ctx.pspecfile)
|
||||
scriptfile = os.path.join(specdir, const.actions_file)
|
||||
@@ -191,9 +191,9 @@ class PisiBuild:
|
||||
|
||||
self.actionLocals = localSymbols
|
||||
self.actionGlobals = globalSymbols
|
||||
self.srcDir = self.pkgSrcDir()
|
||||
self.srcDir = self.pkg_src_dir()
|
||||
|
||||
def pkgSrcDir(self):
|
||||
def pkg_src_dir(self):
|
||||
"""Returns the real path of WorkDir for an unpacked archive."""
|
||||
try:
|
||||
workdir = self.actionGlobals['WorkDir']
|
||||
@@ -202,7 +202,7 @@ class PisiBuild:
|
||||
|
||||
return os.path.join(self.ctx.pkg_work_dir(), workdir)
|
||||
|
||||
def runActionFunction(self, func, mandatory=False):
|
||||
def run_action_function(self, func, mandatory=False):
|
||||
"""Calls the corresponding function in actions.py.
|
||||
|
||||
If mandatory parameter is True, and function is not present in
|
||||
@@ -221,11 +221,12 @@ class PisiBuild:
|
||||
|
||||
os.chdir(curDir)
|
||||
|
||||
def solveBuildDependencies(self):
|
||||
"""pre-alpha: fail if dependencies not satisfied"""
|
||||
def solve_build_dependencies(self):
|
||||
"""fail if dependencies not satisfied"""
|
||||
#TODO: we'll have to do better than plugging a fxn here
|
||||
pass
|
||||
|
||||
def applyPatches(self):
|
||||
def apply_patches(self):
|
||||
files_dir = os.path.abspath(os.path.join(self.pspecDir,
|
||||
const.files_dir))
|
||||
|
||||
@@ -239,13 +240,13 @@ class PisiBuild:
|
||||
ui.action("* Applying patch: %s\n" % patch.filename)
|
||||
util.do_patch(self.srcDir, patchFile, level=patch.level, target=patch.target)
|
||||
|
||||
def genMetaDataXml(self, package):
|
||||
def gen_metadata_xml(self, package):
|
||||
"""Generate the metadata.xml file for build source.
|
||||
|
||||
metadata.xml is composed of the information from specfile plus
|
||||
some additional information."""
|
||||
metadata = MetaData()
|
||||
metadata.fromSpec(self.spec.source, package)
|
||||
metadata.from_spec(self.spec.source, package)
|
||||
|
||||
# FIXME: MEREEEEEN :)
|
||||
metadata.package.build = 0 # BOGUS. WRONG.
|
||||
@@ -263,18 +264,18 @@ class PisiBuild:
|
||||
metadata.package.installedSize = str(size)
|
||||
metadata.write(os.path.join(self.ctx.pkg_dir(), const.metadata_xml))
|
||||
|
||||
def genFilesXml(self, package):
|
||||
def gen_files_xml(self, package):
|
||||
"""Generetes files.xml using the path definitions in specfile and
|
||||
generated files by the build system."""
|
||||
files = Files()
|
||||
install_dir = self.ctx.pkg_install_dir()
|
||||
collisions = checkPathCollision(package,
|
||||
collisions = check_path_collision(package,
|
||||
self.spec.packages)
|
||||
for pinfo in package.paths:
|
||||
path = install_dir + pinfo.pathname
|
||||
for fpath, fhash in util.get_file_hashes(path, collisions, install_dir):
|
||||
frpath = util.removepathprefix(install_dir, fpath) # relative path
|
||||
ftype = getFileType(frpath, package.paths)
|
||||
ftype = get_file_type(frpath, package.paths)
|
||||
try: # broken links can cause problem
|
||||
fsize = str(os.path.getsize(fpath))
|
||||
except OSError:
|
||||
@@ -283,7 +284,7 @@ class PisiBuild:
|
||||
|
||||
files.write(os.path.join(self.ctx.pkg_dir(), const.files_xml))
|
||||
|
||||
def buildPackages(self):
|
||||
def build_packages(self):
|
||||
"""Build each package defined in PSPEC file. After this process there
|
||||
will be .pisi files hanging around, AS INTENDED ;)"""
|
||||
for package in self.spec.packages:
|
||||
@@ -294,7 +295,7 @@ class PisiBuild:
|
||||
|
||||
pkg = Package(name, 'w')
|
||||
c = os.getcwd()
|
||||
|
||||
|
||||
# add comar files to package
|
||||
os.chdir(self.pspecDir)
|
||||
for pcomar in package.providesComar:
|
||||
@@ -310,24 +311,24 @@ class PisiBuild:
|
||||
util.copy_file(src, dest)
|
||||
if afile.permission:
|
||||
os.chmod(dest, int(afile.permission) | 0777)
|
||||
|
||||
|
||||
os.chdir(c)
|
||||
|
||||
ui.action("** Building package %s\n" % package.name);
|
||||
|
||||
ui.action("Generating %s..." % const.metadata_xml)
|
||||
self.genMetaDataXml(package)
|
||||
self.gen_metadata_xml(package)
|
||||
ui.info(" done.\n")
|
||||
|
||||
ui.action("Generating %s..." % const.files_xml)
|
||||
self.genFilesXml(package)
|
||||
self.gen_files_xml(package)
|
||||
ui.info(" done.\n")
|
||||
|
||||
ui.action("Creating PISI package %s\n" % name)
|
||||
|
||||
# add xmls and files
|
||||
os.chdir(self.ctx.pkg_dir())
|
||||
|
||||
|
||||
pkg.add_to_package(const.metadata_xml)
|
||||
pkg.add_to_package(const.files_xml)
|
||||
|
||||
@@ -340,5 +341,5 @@ class PisiBuild:
|
||||
|
||||
pkg.close()
|
||||
os.chdir(c)
|
||||
self.setState("buildpackages")
|
||||
self.set_state("buildpackages")
|
||||
util.xtermTitleReset()
|
||||
|
||||
@@ -471,7 +471,7 @@ Remove all repository information from the system.
|
||||
if len(self.args)>=1:
|
||||
self.init()
|
||||
for repo in self.args:
|
||||
toplevel.remove_repo(repo)
|
||||
pisi.toplevel.remove_repo(repo)
|
||||
self.finalize()
|
||||
else:
|
||||
self.help()
|
||||
|
||||
+2
-2
@@ -24,9 +24,9 @@ class BuildContext(object):
|
||||
|
||||
def __init__(self, pspecfile):
|
||||
super(BuildContext, self).__init__()
|
||||
self.setSpecFile(pspecfile)
|
||||
self.set_spec_file(pspecfile)
|
||||
|
||||
def setSpecFile(self, pspecfile):
|
||||
def set_spec_file(self, pspecfile):
|
||||
self.pspecfile = pspecfile
|
||||
spec = SpecFile()
|
||||
spec.read(pspecfile)
|
||||
|
||||
+7
-7
@@ -76,7 +76,7 @@ class DepInfo:
|
||||
s += 'rel <= ' + self.releaseTo
|
||||
return s
|
||||
|
||||
def dictSatisfiesDep(dict, depinfo):
|
||||
def dict_satisfies_dep(dict, depinfo):
|
||||
"""determine if a package in a dictionary satisfies given dependency spec"""
|
||||
pkg_name = depinfo.package
|
||||
if not dict.has_key(pkg_name):
|
||||
@@ -86,7 +86,7 @@ def dictSatisfiesDep(dict, depinfo):
|
||||
(version, release) = (pkg.version, pkg.release)
|
||||
return depinfo.satisfies(pkg_name, version, release)
|
||||
|
||||
def installedSatisfiesDep(depinfo):
|
||||
def installed_satisfies_dep(depinfo):
|
||||
"""determine if a package in *repository* satisfies given
|
||||
dependency spec"""
|
||||
pkg_name = depinfo.package
|
||||
@@ -97,7 +97,7 @@ dependency spec"""
|
||||
(version, release) = (pkg.version, pkg.release)
|
||||
return depinfo.satisfies(pkg_name, version, release)
|
||||
|
||||
def repoSatisfiesDep(depinfo):
|
||||
def repo_satisfies_dep(depinfo):
|
||||
"""determine if a package in *repository* satisfies given
|
||||
dependency spec"""
|
||||
pkg_name = depinfo.package
|
||||
@@ -108,7 +108,7 @@ dependency spec"""
|
||||
(version, release) = (pkg.version, pkg.release)
|
||||
return depinfo.satisfies(pkg_name, version, release)
|
||||
|
||||
def satisfiesDeps(pkg, deps, sat = installedSatisfiesDep):
|
||||
def satisfies_dependencies(pkg, deps, sat = installed_satisfies_dep):
|
||||
for dep in deps:
|
||||
if not sat(dep):
|
||||
ui.error('Package %s does not satisfy dependency %s\n' %
|
||||
@@ -116,9 +116,9 @@ def satisfiesDeps(pkg, deps, sat = installedSatisfiesDep):
|
||||
return False
|
||||
return True
|
||||
|
||||
def satisfiesRuntimeDeps(pkg):
|
||||
def satisfies_runtime_deps(pkg):
|
||||
deps = packagedb.get_package(pkg).runtimeDeps
|
||||
return satisfiesDeps(pkg, deps)
|
||||
return satisfies_dependencies(pkg, deps)
|
||||
|
||||
def installable(pkg):
|
||||
"""calculate if pkg is installable currently
|
||||
@@ -126,7 +126,7 @@ def installable(pkg):
|
||||
if not packagedb.has_package(pkg):
|
||||
ui.info("Package " + pkg + " is not present in the package database\n");
|
||||
return False
|
||||
elif satisfiesRuntimeDeps(pkg):
|
||||
elif satisfies_runtime_deps(pkg):
|
||||
return True
|
||||
else:
|
||||
#ui.info("package " + pkg + " does not satisfy dependencies\n");
|
||||
|
||||
+5
-5
@@ -32,7 +32,7 @@ class FetchError(pisi.Error):
|
||||
|
||||
|
||||
# helper functions
|
||||
def fetchUrl(url, dest, progress=None):
|
||||
def fetch_url(url, dest, progress=None):
|
||||
fetch = Fetcher(url, dest)
|
||||
fetch.progress = progress
|
||||
fetch.fetch()
|
||||
@@ -70,7 +70,7 @@ class Fetcher:
|
||||
|
||||
return os.path.join(self.filedest, self.url.filename())
|
||||
|
||||
def doGrab(self, fileURI, dest, totalsize):
|
||||
def _do_grab(self, fileURI, dest, totalsize):
|
||||
symbols = [' B/s', 'KB/s', 'MB/s', 'GB/s']
|
||||
from time import time
|
||||
tt, oldsize = int(time()), 0
|
||||
@@ -101,7 +101,7 @@ class Fetcher:
|
||||
'percent' : self.percent,
|
||||
'rate': self.rate,
|
||||
'symbol': symbol}
|
||||
ui.displayProgress(retval)
|
||||
ui.display_progress(retval)
|
||||
|
||||
dest.close()
|
||||
|
||||
@@ -114,7 +114,7 @@ class Fetcher:
|
||||
dest = open(os.path.join(self.filedest, url.filename()) , "w")
|
||||
totalsize = os.path.getsize(url.path())
|
||||
fileObj = open(url.path())
|
||||
self.doGrab(fileObj, dest, totalsize)
|
||||
self._do_grab(fileObj, dest, totalsize)
|
||||
|
||||
def fetchRemoteFile (self):
|
||||
from httplib import HTTPException
|
||||
@@ -138,7 +138,7 @@ class Fetcher:
|
||||
else: totalsize = int(headers['Content-Length'])
|
||||
|
||||
dest = open(os.path.join(self.filedest, self.url.filename()) , "w")
|
||||
self.doGrab(fileObj, dest, totalsize)
|
||||
self._do_grab(fileObj, dest, totalsize)
|
||||
|
||||
def formatRequest(self, request):
|
||||
authinfo = self.url.auth_info()
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ import pisi
|
||||
class CycleException(pisi.Exception):
|
||||
pass
|
||||
|
||||
class digraph(object):
|
||||
class Digraph(object):
|
||||
|
||||
def __init__(self):
|
||||
self.__v = set()
|
||||
|
||||
+2
-2
@@ -39,12 +39,12 @@ class Index(XmlFile):
|
||||
self.filepath = filename
|
||||
url = URI(filename)
|
||||
if url.is_remote_file():
|
||||
from fetcher import fetchUrl
|
||||
from fetcher import fetch_url
|
||||
|
||||
dest = os.path.join(config.index_dir(), repo)
|
||||
if not os.path.exists(dest):
|
||||
os.makedirs(dest)
|
||||
fetchUrl(url, dest, ui.Progress)
|
||||
fetch_url(url, dest, ui.Progress)
|
||||
|
||||
self.filepath = os.path.join(dest, url.filename())
|
||||
|
||||
|
||||
+6
-6
@@ -54,9 +54,9 @@ class Installer:
|
||||
self.check_requirements()
|
||||
self.check_relations()
|
||||
self.reinstall()
|
||||
self.extractInstall()
|
||||
self.storePisiFiles()
|
||||
self.registerCOMARScripts()
|
||||
self.extract_install()
|
||||
self.store_pisi_files()
|
||||
self.register_comar_scripts()
|
||||
self.update_databases()
|
||||
|
||||
def check_requirements(self):
|
||||
@@ -119,13 +119,13 @@ class Installer:
|
||||
# remove old package then
|
||||
operations.remove_single(pkg.name)
|
||||
|
||||
def extractInstall(self):
|
||||
def extract_install(self):
|
||||
"unzip package in place"
|
||||
|
||||
ui.info('Extracting files,\n')
|
||||
self.package.extract_dir_flat('install', config.destdir)
|
||||
|
||||
def storePisiFiles(self):
|
||||
def store_pisi_files(self):
|
||||
"""put files.xml, metadata.xml, actions.py and COMAR scripts
|
||||
somewhere in the file system. We'll need these in future..."""
|
||||
|
||||
@@ -142,7 +142,7 @@ class Installer:
|
||||
ui.info('Storing %s\n' % fpath)
|
||||
self.package.extract_file(fpath, self.package.pkg_dir())
|
||||
|
||||
def registerCOMARScripts(self):
|
||||
def register_comar_scripts(self):
|
||||
"register COMAR scripts"
|
||||
|
||||
for pcomar in self.metadata.package.providesComar:
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ class MetaData(XmlFile):
|
||||
def __init__(self):
|
||||
XmlFile.__init__(self, "PISI")
|
||||
|
||||
def fromSpec(self, src, pkg):
|
||||
def from_spec(self, src, pkg):
|
||||
self.source = SourceInfo()
|
||||
self.source.name = src.name
|
||||
self.source.homepage = src.homepage
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ def install_single_name(name, upgrade = False):
|
||||
pkg = packagedb.get_package(name)
|
||||
|
||||
if repo.indexuri.is_local_file():
|
||||
pkg_path = pkg.packageURI
|
||||
pkg_path = str(pkg.packageURI)
|
||||
else:
|
||||
# FIXME: determine if we have relative paths in the index
|
||||
# rather than doing this. Requires the index to know about
|
||||
|
||||
+2
-2
@@ -37,10 +37,10 @@ class Package:
|
||||
url = URI(packagefn)
|
||||
|
||||
if url.is_remote_file():
|
||||
from fetcher import fetchUrl
|
||||
from fetcher import fetch_url
|
||||
from ui import ui
|
||||
dest = config.packages_dir()
|
||||
fetchUrl(url, dest, ui.Progress)
|
||||
fetch_url(url, dest, ui.Progress)
|
||||
self.filepath = join(dest, url.filename())
|
||||
|
||||
self.impl = archive.ArchiveZip(self.filepath, 'zip', mode)
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ from graph import *
|
||||
|
||||
# Cache the results from packagedb queries in a graph
|
||||
|
||||
class PGraph(digraph):
|
||||
class PGraph(Digraph):
|
||||
|
||||
def __init__(self, packagedb):
|
||||
super(PGraph, self).__init__()
|
||||
|
||||
@@ -25,7 +25,7 @@ from pisi.archive import Archive
|
||||
from pisi.uri import URI
|
||||
from pisi.ui import ui
|
||||
from pisi.config import config
|
||||
from pisi.fetcher import fetchUrl
|
||||
from pisi.fetcher import fetch_url
|
||||
import pisi.util as util
|
||||
|
||||
class SourceArchiveError(pisi.Error):
|
||||
@@ -42,13 +42,13 @@ class SourceArchive:
|
||||
self.archiveSHA1 = self.ctx.spec.source.archiveSHA1
|
||||
|
||||
def fetch(self, interactive=True):
|
||||
if not self.isCached(interactive):
|
||||
if not self.is_cached(interactive):
|
||||
if interactive:
|
||||
progress = ui.Progress
|
||||
else: progress = None
|
||||
fetchUrl(self.url, config.archives_dir(), progress)
|
||||
fetch_url(self.url, config.archives_dir(), progress)
|
||||
|
||||
def isCached(self, interactive=True):
|
||||
def is_cached(self, interactive=True):
|
||||
if not access(self.archiveFile, R_OK):
|
||||
return False
|
||||
|
||||
|
||||
@@ -74,9 +74,9 @@ class SourceFetcher(object):
|
||||
self.fetch(const.files_dir)
|
||||
|
||||
def fetch(self, appendDest=""):
|
||||
from fetcher import fetchUrl
|
||||
from fetcher import fetch_url
|
||||
|
||||
ui.info("Fetching %s\n" % self.url.uri)
|
||||
dest = join(self.dest, appendDest)
|
||||
fetchUrl(self.url, dest)
|
||||
fetch_url(self.url, dest)
|
||||
|
||||
|
||||
+4
-4
@@ -371,12 +371,12 @@ class SpecFile(XmlFile):
|
||||
packageElts = self.getAllNodes("Package")
|
||||
self.packages = [PackageInfo(p) for p in packageElts]
|
||||
|
||||
self.doMerges()
|
||||
self.doOverrides()
|
||||
self.merge_tags()
|
||||
self.override_tags()
|
||||
|
||||
self.unlink()
|
||||
|
||||
def doOverrides(self):
|
||||
def override_tags(self):
|
||||
"""Override tags from Source in Packages. Some tags in Packages
|
||||
overrides the tags from Source. There is a more detailed
|
||||
description in documents."""
|
||||
@@ -395,7 +395,7 @@ class SpecFile(XmlFile):
|
||||
if not pkg.license:
|
||||
pkg.license = self.source.license
|
||||
|
||||
def doMerges(self):
|
||||
def merge_tags(self):
|
||||
"""Merge tags from Source in Packages. Some tags in Packages merged
|
||||
with the tags from Source. There is a more detailed
|
||||
description in documents."""
|
||||
|
||||
+15
-15
@@ -82,8 +82,8 @@ def install_pkg_files(package_URIs):
|
||||
dfn[name] = x
|
||||
|
||||
def satisfiesDep(dep):
|
||||
return dependency.installedSatisfiesDep(dep) \
|
||||
or dependency.dictSatisfiesDep(d_t, dep)
|
||||
return dependency.installed_satisfies_dep(dep) \
|
||||
or dependency.dict_satisfies_dep(d_t, dep)
|
||||
|
||||
# for this case, we have to determine the dependencies
|
||||
# that aren't already satisfied and try to install them
|
||||
@@ -140,7 +140,7 @@ def install_pkg_files(package_URIs):
|
||||
print pkg
|
||||
for dep in pkg.runtimeDeps:
|
||||
print 'checking ', dep
|
||||
if dependency.dictSatisfiesDep(d_t, dep):
|
||||
if dependency.dict_satisfies_dep(d_t, dep):
|
||||
if not dep.package in G_f.vertices():
|
||||
Bp.add(str(dep.package))
|
||||
G_f.add_dep(x, dep)
|
||||
@@ -188,7 +188,7 @@ def install_pkg_names(A):
|
||||
for dep in pkg.runtimeDeps:
|
||||
print 'checking ', dep
|
||||
# we don't deal with already *satisfied* dependencies
|
||||
if not dependency.installedSatisfiesDep(dep):
|
||||
if not dependency.installed_satisfies_dep(dep):
|
||||
if not dep.package in G_f.vertices():
|
||||
Bp.add(str(dep.package))
|
||||
G_f.add_dep(x, dep)
|
||||
@@ -256,7 +256,7 @@ def upgrade_pkg_names(A):
|
||||
for dep in pkg.runtimeDeps:
|
||||
print 'checking ', dep
|
||||
# add packages that can be upgraded
|
||||
if dependency.repoSatisfiesDep(dep):
|
||||
if dependency.repo_satisfies_dep(dep):
|
||||
if installdb.is_installed(dep.package):
|
||||
#FIXME: use build no
|
||||
(v,r) = installdb.get_version(dep.package)
|
||||
@@ -314,7 +314,7 @@ def remove(A):
|
||||
for (rev_dep, depinfo) in rev_deps:
|
||||
print 'checking ', rev_dep
|
||||
# we don't deal with unsatisfied dependencies
|
||||
if dependency.installedSatisfiesDep(depinfo):
|
||||
if dependency.installed_satisfies_dep(depinfo):
|
||||
if not rev_dep in G_f.vertices():
|
||||
Bp.add(rev_dep)
|
||||
G_f.add_plain_dep(rev_dep, x)
|
||||
@@ -406,39 +406,39 @@ order = {"none": 0,
|
||||
|
||||
def __buildState_unpack(pb):
|
||||
# unpack is the first state to run.
|
||||
pb.fetchSourceArchive()
|
||||
pb.unpackSourceArchive()
|
||||
pb.applyPatches()
|
||||
pb.fetch_source_archive()
|
||||
pb.unpack_source_archive()
|
||||
pb.apply_patches()
|
||||
|
||||
def __buildState_setupaction(pb, last):
|
||||
|
||||
if order[last] < order["unpack"]:
|
||||
__buildState_unpack(pb)
|
||||
pb.runSetupAction()
|
||||
pb.run_setup_action()
|
||||
|
||||
def __buildState_buildaction(pb, last):
|
||||
|
||||
if order[last] < order["setupaction"]:
|
||||
__buildState_setupaction(pb, last)
|
||||
pb.runBuildAction()
|
||||
pb.run_build_action()
|
||||
|
||||
def __buildState_installaction(pb, last):
|
||||
|
||||
if order[last] < order["buildaction"]:
|
||||
__buildState_buildaction(pb, last)
|
||||
pb.runInstallAction()
|
||||
pb.run_install_action()
|
||||
|
||||
def __buildState_buildpackages(pb, last):
|
||||
|
||||
if order[last] < order["installaction"]:
|
||||
__buildState_installaction(pb, last)
|
||||
pb.buildPackages()
|
||||
pb.build_packages()
|
||||
|
||||
def build_until(pspecfile, state, authInfo=None):
|
||||
pb = prepare_for_build(pspecfile, authInfo)
|
||||
pb.compileActionScript()
|
||||
pb.compile_action_script()
|
||||
|
||||
last = pb.getState()
|
||||
last = pb.get_state()
|
||||
ui.info("Last state was %s\n"%last)
|
||||
|
||||
if not last: last = "none"
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ class CLI:
|
||||
else:
|
||||
return 0
|
||||
|
||||
def displayProgress(self, pd):
|
||||
def display_progress(self, pd):
|
||||
out = '\r%-30.30s %3d%% %12.2f %s' % \
|
||||
(pd['filename'], pd['percent'], pd['rate'], pd['symbol'])
|
||||
self.info(out)
|
||||
|
||||
+2
-1
@@ -9,9 +9,10 @@
|
||||
#
|
||||
# Please read the COPYING file.
|
||||
#
|
||||
|
||||
# some helper functions for using minidom
|
||||
# works well enough for now... :/
|
||||
# function names are mixedCase for compatibility with minidom,
|
||||
# an old library
|
||||
|
||||
# Authors: Eray Ozkural <eray@uludag.org.tr>
|
||||
# Baris Metin <baris@uludag.org.tr
|
||||
|
||||
+3
-1
@@ -9,13 +9,15 @@
|
||||
#
|
||||
# Please read the COPYING file.
|
||||
#
|
||||
|
||||
# XmlFile is a halper module for accessing XML files using
|
||||
# xml.dom.minidom.
|
||||
#
|
||||
# XmlFile class that further abstracts a dom object using the
|
||||
# high-level dom functions provided in xml module (and sorely lacking
|
||||
# in xml.dom :( )
|
||||
#
|
||||
# method names are mixedCase for compatibility with minidom,
|
||||
# an old library
|
||||
|
||||
# Authors: Eray Ozkural <eray@uludag.org.tr>
|
||||
# Baris Metin <baris@uludag.org.tr
|
||||
|
||||
Reference in New Issue
Block a user