* build no'yu hesaplamak icin gereken skeleton code
* baska ufak tefek degisiklikler
This commit is contained in:
+47
-21
@@ -261,17 +261,41 @@ class PisiBuild:
|
||||
metadata.package.installedSize = str(size)
|
||||
|
||||
# build no
|
||||
# FIXME: @!#$%^*( MEREEEEEN :)
|
||||
# FIXME: sovsak MEREEEEEN :)
|
||||
if config.options.ignore_build_no:
|
||||
metadata.package.build = None # means, build no information n/a
|
||||
ui.warning('Build number is not available.')
|
||||
else:
|
||||
found = False
|
||||
# TODO: find previous build in config.options.output_dir
|
||||
if not found:
|
||||
metadata.package.build = None
|
||||
# TODO: else: check if metadata has changed in any significant way
|
||||
# TODO: see if any file has changed except metadata
|
||||
old_package_fn = None
|
||||
# find previous build in config.options.output_dir
|
||||
# FIXME: get the newest version, make this into another fxn
|
||||
for root, dirs, files in os.walk(config.options.output_dir):
|
||||
if old_package_fn:
|
||||
break
|
||||
for fn in files:
|
||||
if fn.startswith(metadata.package.name + '-') and \
|
||||
fn.endswith(const.package_prefix):
|
||||
old_package_fn = os.path.join(root, fn)
|
||||
ui.info('Found old version %s\n' % old_package_fn)
|
||||
break
|
||||
if not old_package_fn:
|
||||
metadata.package.build = 0
|
||||
ui.warning('No previous build found. Setting build no to 0.\n')
|
||||
else:
|
||||
old_pkg = Package(old_package_fn, 'r')
|
||||
from os.path import join
|
||||
old_pkg.read(join(config.tmp_dir(), 'oldpkg'))
|
||||
# TODO: check if metadata has changed in any significant way
|
||||
# TODO: see if any file has changed except metadata
|
||||
changed = True
|
||||
old_build = old_pkg.metadata.package.build
|
||||
if old_build is None:
|
||||
ui.warning('Old package lacks a build no! Setting build no to 0.')
|
||||
metadata.package.build = 0
|
||||
elif changed:
|
||||
metadata.package.build = old_build + 1
|
||||
else:
|
||||
metadata.package.build = old_build
|
||||
|
||||
metadata.write(os.path.join(self.ctx.pkg_dir(), const.metadata_xml))
|
||||
|
||||
@@ -304,9 +328,25 @@ class PisiBuild:
|
||||
self.spec.source.version,
|
||||
self.spec.source.release)
|
||||
|
||||
|
||||
ui.action("** Building package %s\n" % package.name);
|
||||
|
||||
ui.action("Generating %s..." % const.metadata_xml)
|
||||
self.gen_metadata_xml(package)
|
||||
ui.info(" done.\n")
|
||||
|
||||
ui.action("Generating %s..." % const.files_xml)
|
||||
self.gen_files_xml(package)
|
||||
ui.info(" done.\n")
|
||||
|
||||
ui.action("Creating PISI package %s\n" % name)
|
||||
|
||||
pkg = Package(name, 'w')
|
||||
|
||||
c = os.getcwd()
|
||||
|
||||
os.chdir(c)
|
||||
|
||||
# add comar files to package
|
||||
os.chdir(self.pspecDir)
|
||||
for pcomar in package.providesComar:
|
||||
@@ -322,21 +362,7 @@ 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.gen_metadata_xml(package)
|
||||
ui.info(" done.\n")
|
||||
|
||||
ui.action("Generating %s..." % const.files_xml)
|
||||
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())
|
||||
|
||||
|
||||
@@ -202,6 +202,8 @@ fetch all necessary files and build the package for you.
|
||||
|
||||
def options(self):
|
||||
buildno_opts(self)
|
||||
self.parser.add_option("-O", "--output-dir", action="store", default=".",
|
||||
help="output directory for produced packages")
|
||||
|
||||
def run(self):
|
||||
if not self.args:
|
||||
@@ -209,6 +211,8 @@ fetch all necessary files and build the package for you.
|
||||
return
|
||||
|
||||
self.init()
|
||||
from pisi.config import config
|
||||
pisi.ui.ui.info('Output directory: %s\n' % config.options.output_dir)
|
||||
for arg in self.args:
|
||||
pisi.toplevel.build(arg, self.authInfo)
|
||||
self.finalize()
|
||||
|
||||
+2
-2
@@ -54,7 +54,7 @@ class PackageInfo(specfile.PackageInfo):
|
||||
self.version = getNodeText(node, "Version")
|
||||
self.release = getNodeText(node, "Release")
|
||||
build_ = getNodeText(node, "Build")
|
||||
if build_:
|
||||
if build_ != None:
|
||||
self.build = int(build_)
|
||||
else:
|
||||
self.build = None
|
||||
@@ -68,7 +68,7 @@ class PackageInfo(specfile.PackageInfo):
|
||||
|
||||
def elt(self, xml):
|
||||
node = specfile.PackageInfo.elt(self, xml)
|
||||
if self.build:
|
||||
if self.build != None:
|
||||
xml.addTextNodeUnder(node, "Build", str(self.build))
|
||||
xml.addTextNodeUnder(node, "Distribution", self.distribution)
|
||||
xml.addTextNodeUnder(node, "DistributionRelease", self.distributionRelease)
|
||||
|
||||
@@ -106,13 +106,5 @@ class Package:
|
||||
|
||||
return join( config.lib_dir(), packageDir)
|
||||
|
||||
# bu fonksiyonun aynısı yukarıda başka bir isim ile var, biri fazla...
|
||||
# def pkg_dir_aux():
|
||||
# packageDir = self.metadata.package.name + '-' \
|
||||
# + self.metadata.package.version + '-' \
|
||||
# + self.metadata.package.release
|
||||
|
||||
# return join( config.lib_dir(), packageDir)
|
||||
|
||||
def comar_dir(self):
|
||||
return self.pkg_dir() + const.comar_dir_suffix
|
||||
|
||||
Reference in New Issue
Block a user