* build no'yu hesaplamak icin gereken skeleton code
* baska ufak tefek degisiklikler
This commit is contained in:
+46
-20
@@ -261,17 +261,41 @@ class PisiBuild:
|
|||||||
metadata.package.installedSize = str(size)
|
metadata.package.installedSize = str(size)
|
||||||
|
|
||||||
# build no
|
# build no
|
||||||
# FIXME: @!#$%^*( MEREEEEEN :)
|
# FIXME: sovsak MEREEEEEN :)
|
||||||
if config.options.ignore_build_no:
|
if config.options.ignore_build_no:
|
||||||
metadata.package.build = None # means, build no information n/a
|
metadata.package.build = None # means, build no information n/a
|
||||||
ui.warning('Build number is not available.')
|
ui.warning('Build number is not available.')
|
||||||
else:
|
else:
|
||||||
found = False
|
old_package_fn = None
|
||||||
# TODO: find previous build in config.options.output_dir
|
# find previous build in config.options.output_dir
|
||||||
if not found:
|
# FIXME: get the newest version, make this into another fxn
|
||||||
metadata.package.build = None
|
for root, dirs, files in os.walk(config.options.output_dir):
|
||||||
# TODO: else: check if metadata has changed in any significant way
|
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
|
# 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))
|
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.version,
|
||||||
self.spec.source.release)
|
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')
|
pkg = Package(name, 'w')
|
||||||
|
|
||||||
c = os.getcwd()
|
c = os.getcwd()
|
||||||
|
|
||||||
|
os.chdir(c)
|
||||||
|
|
||||||
# add comar files to package
|
# add comar files to package
|
||||||
os.chdir(self.pspecDir)
|
os.chdir(self.pspecDir)
|
||||||
for pcomar in package.providesComar:
|
for pcomar in package.providesComar:
|
||||||
@@ -323,20 +363,6 @@ class PisiBuild:
|
|||||||
if afile.permission:
|
if afile.permission:
|
||||||
os.chmod(dest, int(afile.permission) | 0777)
|
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
|
# add xmls and files
|
||||||
os.chdir(self.ctx.pkg_dir())
|
os.chdir(self.ctx.pkg_dir())
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,8 @@ fetch all necessary files and build the package for you.
|
|||||||
|
|
||||||
def options(self):
|
def options(self):
|
||||||
buildno_opts(self)
|
buildno_opts(self)
|
||||||
|
self.parser.add_option("-O", "--output-dir", action="store", default=".",
|
||||||
|
help="output directory for produced packages")
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
if not self.args:
|
if not self.args:
|
||||||
@@ -209,6 +211,8 @@ fetch all necessary files and build the package for you.
|
|||||||
return
|
return
|
||||||
|
|
||||||
self.init()
|
self.init()
|
||||||
|
from pisi.config import config
|
||||||
|
pisi.ui.ui.info('Output directory: %s\n' % config.options.output_dir)
|
||||||
for arg in self.args:
|
for arg in self.args:
|
||||||
pisi.toplevel.build(arg, self.authInfo)
|
pisi.toplevel.build(arg, self.authInfo)
|
||||||
self.finalize()
|
self.finalize()
|
||||||
|
|||||||
+2
-2
@@ -54,7 +54,7 @@ class PackageInfo(specfile.PackageInfo):
|
|||||||
self.version = getNodeText(node, "Version")
|
self.version = getNodeText(node, "Version")
|
||||||
self.release = getNodeText(node, "Release")
|
self.release = getNodeText(node, "Release")
|
||||||
build_ = getNodeText(node, "Build")
|
build_ = getNodeText(node, "Build")
|
||||||
if build_:
|
if build_ != None:
|
||||||
self.build = int(build_)
|
self.build = int(build_)
|
||||||
else:
|
else:
|
||||||
self.build = None
|
self.build = None
|
||||||
@@ -68,7 +68,7 @@ class PackageInfo(specfile.PackageInfo):
|
|||||||
|
|
||||||
def elt(self, xml):
|
def elt(self, xml):
|
||||||
node = specfile.PackageInfo.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, "Build", str(self.build))
|
||||||
xml.addTextNodeUnder(node, "Distribution", self.distribution)
|
xml.addTextNodeUnder(node, "Distribution", self.distribution)
|
||||||
xml.addTextNodeUnder(node, "DistributionRelease", self.distributionRelease)
|
xml.addTextNodeUnder(node, "DistributionRelease", self.distributionRelease)
|
||||||
|
|||||||
@@ -106,13 +106,5 @@ class Package:
|
|||||||
|
|
||||||
return join( config.lib_dir(), packageDir)
|
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):
|
def comar_dir(self):
|
||||||
return self.pkg_dir() + const.comar_dir_suffix
|
return self.pkg_dir() + const.comar_dir_suffix
|
||||||
|
|||||||
Reference in New Issue
Block a user