]> git.pld-linux.org Git - projects/pld-ftp-admin.git/commitdiff
- separate debuginfo support
authorElan Ruusamäe <glen@pld-linux.org>
Tue, 26 May 2009 22:46:01 +0000 (22:46 +0000)
committerElan Ruusamäe <glen@pld-linux.org>
Tue, 26 May 2009 22:46:01 +0000 (22:46 +0000)
Changed files:
    bin/pfa-from-incoming -> 1.18
    bin/pfa-genindex -> 1.26
    modules/config.py -> 1.11
    modules/ftptree.py -> 1.37

bin/pfa-from-incoming
bin/pfa-genindex
modules/config.py
modules/ftptree.py

index 1bfa8e77fc5cace7e88be319c91ae9c718b306bf..9826ed9565882297927712c690d61557da95d99d 100644 (file)
@@ -21,6 +21,16 @@ def rm(file):
 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':
@@ -183,7 +193,10 @@ for arch in ftp_archs:
                 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)
index db4cb3a1bd4cabec8e754b0d8901613c3b28f04b..12d237e8fffe7e75e71254db94a45e773c289585 100644 (file)
@@ -71,8 +71,12 @@ if do_poldek:
             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)
@@ -84,6 +88,8 @@ if do_yum:
             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)
index dc9353a686f6f46bdeaac89ebc76acec0deba04a..72cd964729831c667739c11138ad46d4692754aa 100644 (file)
@@ -45,6 +45,11 @@ if value['separate_noarch'] == 'yes':
 else:
     separate_noarch = False
 
+if value['separate_debuginfo'] == 'yes':
+    separate_debuginfo = True
+else:
+    separate_debuginfo = False
+
 if separate_noarch:
     all_ftp_archs = ['noarch'] + ftp_archs
 else:
index 0c7ac076a8f6107c4dd5e2b5ab9a2f6ff0f75f86..81bf4ab1c28f627f23e6de5c5fe9727cd95c5d66 100644 (file)
@@ -75,6 +75,18 @@ class Pkg(BasePkg):
             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
@@ -124,7 +136,10 @@ class Pkg(BasePkg):
         """
         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)
@@ -142,12 +157,18 @@ class Pkg(BasePkg):
                         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]
@@ -157,7 +178,10 @@ class Pkg(BasePkg):
             # 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)
This page took 0.17368 seconds and 4 git commands to generate.