def mv(src, dst):
os.rename(src, dst + '/' + src.split('/')[-1])
+# duplicate code in ftptree.py
+def is_debuginfo(nvr):
+ """
+ returns true if NVR is debuginfo package and separate debuginfo is enabled
+ """
+ if not config.separate_debuginfo:
+ return False
+ pkg = nvr.split('-')[:-2]
+ return pkg[-1] == 'debuginfo'
+
def findfiles(dir):
def filterinfos(x):
if x[-11:] == '.uploadinfo':
f.write("file:%s:%s\n" % (arch, rpm))
srcfile = incoming_dir + arch + '/' + rpm
- dstfile = default_to + arch + '/RPMS'
+ if is_debuginfo(rpm):
+ dstfile = default_to + arch + '/debuginfo'
+ else:
+ dstfile = default_to + arch + '/RPMS'
try:
mv(srcfile, dstfile)
print 'generate poldek index for %s' % arch
if config.poldek_indexes != "old":
os.system('%s -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pndir' % (poldek, ftp_dir, tree, arch))
+ if config.separate_debuginfo:
+ os.system('%s -s %s%s/%s/debuginfo/ --mkidxz --mkidx-type pndir' % (poldek, ftp_dir, tree, arch))
if config.poldek_indexes != "new":
os.system('%s -s %s%s/%s/RPMS/ --mkidxz --mkidx-type pdir' % (poldek, ftp_dir, tree, arch))
+ if config.separate_debuginfo:
+ os.system('%s -s %s%s/%s/debuginfo/ --mkidxz --mkidx-type pdir' % (poldek, ftp_dir, tree, arch))
if do_yum:
os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
print 'generate repodata for %s using createrepo' % arch
# Creating indexes for yum and other supporting xml repodata.
os.system('time %s --cache %s-%s %s%s/%s/RPMS' % (yum, cachedir, arch, ftp_dir, tree, arch))
+ if config.separate_debuginfo:
+ os.system('time %s --cache %s-%s %s%s/%s/debuginfo' % (yum, cachedir, arch, ftp_dir, tree, arch))
if do_rpmrepo:
os.system('set -x; cd %s.stat/repodata && cvs up comps.xml' % ftp_dir)
return rpm.labelCompare(('0', self.version, self.release),
('0', pkg.version, pkg.release))
+
+ # unfortunately can't do new Pkg(NVR), and have no "tree" in this pkg context
+ # so this static function
+ def is_debuginfo(self, nvr):
+ """
+ returns true if NVR is debuginfo package and separate debuginfo is enabled
+ """
+ if not config.separate_debuginfo:
+ return False
+ pkg = nvr.split('-')[:-2]
+ return pkg[-1] == 'debuginfo'
+
def mark4moving(self):
if not self.marked4moving:
# Only one pkg in this pool can be marked for moving
"""
for arch in self.files.keys():
for rpm in self.files[arch]:
- rm(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, test)
+ if self.is_debuginfo(rpm):
+ rm(self.tree.basedir + '/' + arch + '/debuginfo/' + rpm, test)
+ else:
+ rm(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, test)
if arch == 'noarch':
if fileexists(noarchcachedir + rpm + '.filelist'):
rm(noarchcachedir + rpm + '.filelist', test)
msg = "TEST "
pinfo("%sArch %s for %s is already present in dest tree; removing from srctree" % (msg, arch, self.nvr))
for rpm in self.files[arch]:
- rm(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, test)
+ if self.is_debuginfo(rpm):
+ rm(self.tree.basedir + '/' + arch + '/debuginfo/' + rpm, test)
+ else:
+ rm(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, test)
else:
movedany = True
dsttree[self.nvr].files[arch] = self.files[arch]
for rpm in self.files[arch]:
- mv(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, dsttree.basedir + '/' + arch + '/RPMS/', test)
+ if self.is_debuginfo(rpm):
+ mv(self.tree.basedir + '/' + arch + '/debuginfo/' + rpm, dsttree.basedir + '/' + arch + '/debuginfo/', test)
+ else:
+ mv(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, dsttree.basedir + '/' + arch + '/RPMS/', test)
if not test and movedany:
for bid in self.build.keys():
dsttree[self.nvr].build[bid] = self.build[bid]
# move files
for arch in self.files.keys():
for rpm in self.files[arch]:
- mv(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, dsttree.basedir + '/' + arch + '/RPMS/', test)
+ if self.is_debuginfo(rpm):
+ mv(self.tree.basedir + '/' + arch + '/debuginfo/' + rpm, dsttree.basedir + '/' + arch + '/debuginfo/', test)
+ else:
+ mv(self.tree.basedir + '/' + arch + '/RPMS/' + rpm, dsttree.basedir + '/' + arch + '/RPMS/', test)
# move metadata
mv(self.tree.basedir + '/SRPMS/.metadata/' + self.nvr + '.src.rpm.info', dsttree.basedir + '/SRPMS/.metadata/', test)