]> git.pld-linux.org Git - projects/pld-ftp-admin.git/commitdiff
Always overwrite files in dest tree with newly built ones
authorJan Rękorajski <baggins@pld-linux.org>
Sat, 11 Oct 2014 17:38:37 +0000 (19:38 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Sat, 11 Oct 2014 17:38:37 +0000 (19:38 +0200)
Always copy new files from incoming to dest tree,
skipping them causes inconsistent builds and lost
binary rpms when rebuilding files from last tags.

Prime example are packages with kernel modules,
if one is already present in test/ and something
then a new build often results in missing files.

bin/pfa-from-incoming

index 7229d474ee7187b1a59e5cf492f7c0e8f8bd2319..4b86b2be14f35320a2b43d17c2d37a4bcb11cce2 100755 (executable)
@@ -187,8 +187,8 @@ for uploadinfo in findfiles(incoming_dir + 'SRPMS'):
         continue
 
     if ftptree.has_key(`pkg`):
-        ftpio.log("%s already present in %s; removing newer files" % (srpm, ftptree))
-        rm(incoming_dir + 'SRPMS/' + srpm)
+        ftpio.log("%s already present in %s; removing older files" % (srpm, ftptree))
+        rm(default_to + 'SRPMS/RPMS/' + srpm)
         f = open(default_to + 'SRPMS/.metadata/' + srpm+'.info', 'a')
         bid = pkg.build.keys()[0]
         build = pkg.build[bid]
@@ -196,12 +196,11 @@ for uploadinfo in findfiles(incoming_dir + 'SRPMS'):
                  % (bid, build.requester, bid, build.requester_email))
         f.close()
     else:
-        mv(incoming_dir + 'SRPMS/' + srpm, default_to + 'SRPMS/RPMS')
-
         f = open(default_to + 'SRPMS/.metadata/' + srpm + '.info', 'w')
         f.write(content)
         f.close()
 
+    mv(incoming_dir + 'SRPMS/' + srpm, default_to + 'SRPMS/RPMS')
     rm(incoming_dir + 'SRPMS/' + uploadinfo)
 
 for arch in ftp_archs:
@@ -229,16 +228,18 @@ for arch in ftp_archs:
         dstpkg = BasePkg(`srcpkg`, ftptree)
 
         if dstpkg.files.has_key(arch):
-            ftpio.log("files from %s for arch %s already present in %s; removing newer files" % (`srcpkg`, arch, ftptree))
-            for rpmfile in srcpkg.files['ARCH']:
+            ftpio.log("files from %s for arch %s already present in %s; removing older files" % (`srcpkg`, arch, ftptree))
+            for rpmfile in dstpkg.files[arch]:
+                if is_debuginfo(rpmfile):
+                    dstfile = default_to + arch + '/debuginfo'
+                else:
+                    dstfile = default_to + arch + '/RPMS'
                 try:
-                    rm(incoming_dir + arch + '/'+rpmfile)
+                    rm(dstfile + '/' + rpmfile)
                 except OSError, e:
-                    l = "Removing %s problem: %s" % (incoming_dir + arch + '/' + rpmfile, e)
+                    l = "Removing %s problem: %s" % (dstfile + '/' + rpmfile, e)
                     ftpio.log(l)
                     print l
-            rm(incoming_dir + arch + '/' + uploadinfo)
-            continue
 
         f = open(default_to + 'SRPMS/.metadata/' + srpm + '.info', 'a')
         for rpmfile in srcpkg.files['ARCH']:
This page took 0.071864 seconds and 4 git commands to generate.