* diger todo'yu da implement et: files 'lari karsilastir.

* 0.3 versiyonumuz vatanimiza milletimize ve tubitak'imiza hayirli
ugurlu olsun
This commit is contained in:
Eray Özkural
2005-08-16 09:30:16 +00:00
parent 2d5ed2155f
commit 8dda47fc34
3 changed files with 39 additions and 17 deletions
+4 -8
View File
@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-3.7.dtd"> <!DOCTYPE Project SYSTEM "Project-3.7.dtd">
<!-- Project file for project pisi --> <!-- Project file for project pisi -->
<!-- Saved: 2005-08-15, 15:35:13 --> <!-- Saved: 2005-08-16, 12:33:37 -->
<!-- Copyright (C) 2005 PiSi Development Team, --> <!-- Copyright (C) 2005 PiSi Development Team, pisi@uludag.org.tr -->
<Project version="3.7"> <Project version="3.7">
<ProgLanguage mixed="0">Python</ProgLanguage> <ProgLanguage mixed="0">Python</ProgLanguage>
<UIType>Qt</UIType> <UIType>Qt</UIType>
<Description>The package management software of Pardus distribution. <Description>The package management software of Pardus distribution.
</Description> </Description>
<Version>0.2</Version>
<Author>PiSi Development Team</Author> <Author>PiSi Development Team</Author>
<Email></Email> <Email>pisi@uludag.org.tr</Email>
<Sources> <Sources>
<Source> <Source>
<Dir>tools</Dir> <Dir>tools</Dir>
@@ -143,11 +144,6 @@
<Dir>actionsapi</Dir> <Dir>actionsapi</Dir>
<Name>coreutils.py</Name> <Name>coreutils.py</Name>
</Source> </Source>
<Source>
<Dir>pisi</Dir>
<Dir>cli</Dir>
<Name>common.py</Name>
</Source>
<Source> <Source>
<Dir>pisi</Dir> <Dir>pisi</Dir>
<Dir>cli</Dir> <Dir>cli</Dir>
+1 -1
View File
@@ -10,7 +10,7 @@
# PISI version # PISI version
__version__ = "0.2" __version__ = "0.3"
__all__ = [ 'toplevel', 'packagedb', 'installdb' ] __all__ = [ 'toplevel', 'packagedb', 'installdb' ]
+33 -7
View File
@@ -265,9 +265,10 @@ class PisiBuild:
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:
metadata.package.build = self.get_build_number(metadata.package.name) metadata.package.build = self.calc_build_no(metadata.package.name)
metadata.write(os.path.join(self.ctx.pkg_dir(), const.metadata_xml)) metadata.write(os.path.join(self.ctx.pkg_dir(), const.metadata_xml))
self.metadata = metadata
def gen_files_xml(self, package): def gen_files_xml(self, package):
"""Generetes files.xml using the path definitions in specfile and """Generetes files.xml using the path definitions in specfile and
@@ -288,11 +289,11 @@ class PisiBuild:
files.append(FileInfo(frpath, ftype, fsize, fhash)) files.append(FileInfo(frpath, ftype, fsize, fhash))
files.write(os.path.join(self.ctx.pkg_dir(), const.files_xml)) files.write(os.path.join(self.ctx.pkg_dir(), const.files_xml))
self.files = files
def calc_build_no(self, package_name):
"""Calculate build number"""
def get_build_number(self, package_name):
"""Generate build number"""
#NOTE: not functional yet..
old_package_fn = None
# find previous build in config.options.output_dir # find previous build in config.options.output_dir
found = [] found = []
for root, dirs, files in os.walk(config.options.output_dir): for root, dirs, files in os.walk(config.options.output_dir):
@@ -313,11 +314,37 @@ class PisiBuild:
a = filter(lambda (x,y): y != None, found) a = filter(lambda (x,y): y != None, found)
if a: if a:
a.sort(lambda x,y : cmp(x[1],y[1])) a.sort(lambda x,y : cmp(x[1],y[1]))
old_package_fn = a[0][0]
old_build = a[0][1] old_build = a[0][1]
else: else:
old_build = None old_build = None
# TODO: compare old files.xml with the new one..
# compare old files.xml with the new one..
old_pkg = Package(old_package_fn, 'r')
from os.path import join
old_pkg.read(join(config.tmp_dir(), 'oldpkg'))
# FIXME: TAKE INTO ACCOUNT MINOR CHANGES IN METADATA
changed = False
fnew = self.files.list
fold = old_pkg.files.list
fold.sort(lambda x,y : cmp(x.path,y.path))
fnew.sort(lambda x,y : cmp(x.path,y.path))
if len(fnew) != len(fold):
changed = True changed = True
else:
for i in range(len(fold)):
fo = fold.pop(0)
fn = fnew.pop(0)
if fo.path != fn.path:
changed = True
break
else:
if fo.hash != fn.hash:
changed = True
break
# set build number
if old_build is None: if old_build is None:
ui.warning('(old package lacks a build no, setting build no to 0.)') ui.warning('(old package lacks a build no, setting build no to 0.)')
return 0 return 0
@@ -326,7 +353,6 @@ class PisiBuild:
else: else:
return old_build return old_build
def build_packages(self): def build_packages(self):
"""Build each package defined in PSPEC file. After this process there """Build each package defined in PSPEC file. After this process there
will be .pisi files hanging around, AS INTENDED ;)""" will be .pisi files hanging around, AS INTENDED ;)"""