extras-buildsys/utils/pushscript RepoBuild.py, 1.8, 1.9 MultiLib.py, 1.28, 1.29 Utils.py, 1.31, 1.32

Michael Schwendt mschwendt at fedoraproject.org
Fri May 15 19:53:07 UTC 2009


Author: mschwendt

Update of /cvs/fedora/extras-buildsys/utils/pushscript
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17979

Modified Files:
	RepoBuild.py MultiLib.py Utils.py 
Log Message:
Add support for deltarpms.



Index: RepoBuild.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/RepoBuild.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RepoBuild.py	10 May 2009 09:28:06 -0000	1.8
+++ RepoBuild.py	15 May 2009 19:53:06 -0000	1.9
@@ -29,11 +29,11 @@
                 os.unlink(flink)
 
     srpmspath = Utils.srpm_repodir(cfg,dist)
-    Utils.create_repository(cfg,dist,srpmspath)  # source rpms
+    Utils.create_repository(cfg,dist,srpmspath,nodeltas=True)  # source rpms
 
     for arch in cfg.archdict[dist]:
-        Utils.create_repository(cfg, dist, Utils.rpm_repodir(cfg,dist,arch))  # binary rpms
-        Utils.create_repository(cfg, dist, Utils.debug_repodir(cfg,dist,arch), debuginfo=True)  # debuginfo rpms
+        Utils.create_repository(cfg, dist, Utils.rpm_repodir(cfg,dist,arch), arch=arch)  # binary rpms
+        Utils.create_repository(cfg, dist, Utils.debug_repodir(cfg,dist,arch), debuginfo=True,nodeltas=True)  # debuginfo rpms
 
     if hasattr(cfg,'repobuild_linkdict'):
         # recreate symlinks


Index: MultiLib.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/MultiLib.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- MultiLib.py	18 Apr 2009 08:43:25 -0000	1.28
+++ MultiLib.py	15 May 2009 19:53:07 -0000	1.29
@@ -404,8 +404,8 @@
         for arch in cfg.archdict[dist]:  # list of repo archs
             changedagain = resolveMissing(cfg,dist,arch)
             if changedagain:
-                Utils.create_repository(cfg, dist, Utils.rpm_repodir(cfg,dist,arch) )
-                Utils.create_repository(cfg, dist, Utils.debug_repodir(cfg,dist,arch), debuginfo=True )
+                Utils.create_repository(cfg, dist, Utils.rpm_repodir(cfg,dist,arch), arch=arch)
+                Utils.create_repository(cfg, dist, Utils.debug_repodir(cfg,dist,arch), debuginfo=True, nodeltas=True)
 
 
 if __name__ == '__main__':


Index: Utils.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/utils/pushscript/Utils.py,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- Utils.py	12 May 2009 14:00:34 -0000	1.31
+++ Utils.py	15 May 2009 19:53:07 -0000	1.32
@@ -147,13 +147,36 @@
         install_copy(src,dest)
 
 
-def _create_repository(cfg,dist,repodir,debuginfo=False):
+def _create_repository(cfg,dist,repodir,debuginfo=False,nodeltas=False,arch=None):
     # debuginfo: False=exclude debuginfo packages in debug subdir
     print 'Creating repository %s' % repodir
 
+    oldpackagedirs = []
+
+    reldist = dist
+    if dist.startswith('testing/'):
+        reldist = dist.replace('testing/','')
+        if arch:  # add stable updates repo to list of oldpackagedirs
+            oldpackagedirs.append( rpm_repodir(cfg, reldist, arch) )
+
     cmd = cfg.createrepo
     if hasattr(cfg,'createrepo_dict'):
-        cmd = cfg.createrepo_dict.get(dist,cmd)
+        cmd = cfg.createrepo_dict.get(reldist,cmd)
+
+    if cmd.find('--deltas')>0:
+        if nodeltas:  # no deltarpms for debuginfo pkgs and srpms
+            cmd = cmd.replace('--deltas','')
+
+        if arch and hasattr(cfg,'oldpackagedirs'):
+            dirs = cfg.oldpackagedirs.get(reldist,None)
+            if not dirs or not isinstance(dirs,list):
+                dirs = []
+            for dir in dirs:
+                oldpackagedirs.append( dir.replace('$arch',arch) )
+        if not nodeltas:
+            for path in oldpackagedirs:
+                cmd += ' --oldpackagedirs %s' % path
+
     if os.path.exists( os.path.join(repodir,compsname) ):
         cmd += ' -g %s' % compsname
     if (not debuginfo) and os.path.exists( os.path.join(repodir,'debug') ):
@@ -177,7 +200,7 @@
             shutil.move(sourcefile,targetfile)
 
 
-def create_repository(cfg,dist,repodir,debuginfo=False):
+def create_repository(cfg,dist,repodir,debuginfo=False,nodeltas=False,arch=None):
     """create/update repository metadata for a given directory and
     exclude debuginfo packages in a 'debug' sub-repository by default"""
     # Create dirs, if missing, so we would create empty backups, too.
@@ -201,7 +224,7 @@
             targetfile = os.path.join(tmpdir,f)
             shutil.move(sourcefile,targetfile)
 
-        _create_repository(cfg,dist,repodir,debuginfo)
+        _create_repository(cfg,dist,repodir,debuginfo,nodeltas,arch)
         _restore_repodata_dir(tmpdir,rpdata)
 
         # Remove old detached GPG sig (if any).




More information about the fedora-extras-commits mailing list