]> TLD Linux GIT Repositories - tld-ftp-admin.git/blobdiff - bin/pfa-from-incoming
- merged PLD changes
[tld-ftp-admin.git] / bin / pfa-from-incoming
index 3d7ea08a59732ea0566dc140f3b8ed7156dcf5f3..1ea2d59ae3a7e4cf4067c0c860618e0cf1fe2c48 100755 (executable)
@@ -1,6 +1,8 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
 
+from __future__ import print_function
+
 import sys, os, stat, time, re
 sys.path.insert(0, os.environ['HOME']+'/tld-ftp-admin/modules')
 from config import incoming_dir, default_to, ftp_archs
@@ -11,7 +13,7 @@ from baseftptree import BaseFtpTree, BasePkg
 from ftptree import FtpTree, Pkg
 import ftpio
 
-os.umask(022)
+os.umask(0o022)
 
 def rm(file):
     os.remove(file)
@@ -27,7 +29,7 @@ def is_debuginfo(nvr):
     if not config.separate_debuginfo:
         return False
     pkg = nvr.split('-')[:-2]
-    return pkg[-1] == 'debuginfo'
+    return pkg[-1] == 'debuginfo' or pkg[-1] == 'debugsource'
 
 def findfiles(dir):
     def filterinfos(x):
@@ -77,8 +79,8 @@ Subject: %s
     if files_differ:
         f=open("%s/files.diff" % tmpdir, 'r')
         sm.write("Difference between %s (currently in %s) and %s FILES\n" %
-              (pkg.noarch_arch[rpmfile], `ftptree`, arch)),
-        for line in f.readlines(True)[2:]:
+              (pkg.noarch_arch[rpmfile], repr(ftptree), arch)),
+        for line in f.readlines()[2:]:
             sm.write(line)
         f.close()
 
@@ -87,15 +89,15 @@ Subject: %s
     if reqs_differ:
         f=open("%s/reqs.diff" % tmpdir, 'r')
         sm.write("Difference between %s (currently in %s) and %s REQS\n" %
-              (pkg.noarch_arch[rpmfile], `ftptree`, arch)),
-        for line in f.readlines(True)[2:]:
+              (pkg.noarch_arch[rpmfile], repr(ftptree), arch)),
+        for line in f.readlines()[2:]:
             sm.write(line)
         f.close()
 
     sm.close()
 
 def move_noarch(f, arch, rpmfile, dstpkg):
-    if dstpkg.noarch_arch.has_key(rpmfile):
+    if rpmfile in dstpkg.noarch_arch:
         os.system("LC_ALL=C rpm -qlp %s | LC_ALL=C sort > %s/files.new" %
                   (incoming_dir + arch + '/' + rpmfile, tmpdir))
         os.system("rpm -qRp %s | LC_ALL=C sort | LC_ALL=C uniq > %s/reqs.new" %
@@ -120,7 +122,7 @@ def move_noarch(f, arch, rpmfile, dstpkg):
                   (incoming_dir + arch + '/' + rpmfile, noarchcachedir, rpmfile))
         os.system("rpm -qRp %s | LC_ALL=C sort | LC_ALL=C uniq > %s/%s.reqlist" %
                   (incoming_dir + arch + '/' + rpmfile, noarchcachedir, rpmfile))
-        if not dstpkg.files.has_key(arch):
+        if arch not in dstpkg.files:
             f.write("file:noarch:%s\ninfo:noarch_arch:%s:%s\n" % (rpmfile, rpmfile, arch))
         mv(incoming_dir + arch + '/' + rpmfile, default_to + 'noarch/RPMS')
 
@@ -153,7 +155,7 @@ Subject: %s
     sm.write(msg)
 
     sm.write("Difference between %s SRPM (currently in %s) and %s RPM NVR:\n\n" %
-          (snvr[0], `ftptree`, arch)),
+          (snvr[0], repr(ftptree), arch)),
     sm.write("Expected (%s):\nV: %s\nR: %s\n\n" % snvr)
     sm.write("RPM:\nN: %s\nV: %s\nR: %s\n" % anvr)
     sm.write('\n')
@@ -164,13 +166,13 @@ Subject: %s
 try:
     ftpio.connect('from-incoming-pid-%s' % os.getpid())
 except:
-    print "Can't get ftpiod connection"
+    print("Can't get ftpiod connection")
     sys.exit(1)
 
 ftptree = BaseFtpTree(cval['default_to'])
 
 if not ftpio.lock(cval['default_to']):
-    print "Can't get lock: %s" % cval['default_to']
+    print("Can't get lock: %s" % cval['default_to'])
     sys.exit(1)
 
 moved_anything = False
@@ -187,11 +189,11 @@ for uploadinfo in findfiles(incoming_dir + 'SRPMS'):
         ftpio.log("%s file missing; skipping move until next round" % (srpm))
         continue
 
-    if ftptree.has_key(`pkg`):
+    if ftptree.has_key(repr(pkg)):
         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]
+        bid = list(pkg.build.keys())[0]
         build = pkg.build[bid]
         f.write("info:build:%s:requester:%s\ninfo:build:%s:requester_email:%s\n"
                  % (bid, build.requester, bid, build.requester_email))
@@ -214,7 +216,7 @@ for arch in ftp_archs:
         srcpkg = BasePkg(uploadinfo[:-19], content = content)
         srpm = srcpkg.files['SRPMS'][0]
 
-        if not ftptree.has_key(`srcpkg`):
+        if not ftptree.has_key(repr(srcpkg)):
             continue # We require the src.rpm to be present
 
         renvr = re.compile(r'(.*)-(.*)-(.*)\.[^.]*\.rpm')
@@ -226,10 +228,10 @@ for arch in ftp_archs:
                 ftpio.log("%s file missing; skipping move until next round" % (filem))
             continue
 
-        dstpkg = BasePkg(`srcpkg`, ftptree)
+        dstpkg = BasePkg(repr(srcpkg), ftptree)
 
-        if dstpkg.files.has_key(arch):
-            ftpio.log("files from %s for arch %s already present in %s; removing older files" % (`srcpkg`, arch, ftptree))
+        if arch in dstpkg.files:
+            ftpio.log("files from %s for arch %s already present in %s; removing older files" % (repr(srcpkg), arch, ftptree))
             for rpmfile in dstpkg.files[arch]:
                 if is_debuginfo(rpmfile):
                     dstfile = default_to + arch + '/debuginfo'
@@ -237,10 +239,10 @@ for arch in ftp_archs:
                     dstfile = default_to + arch + '/RPMS'
                 try:
                     rm(dstfile + '/' + rpmfile)
-                except OSError, e:
+                except OSError as e:
                     l = "Removing %s problem: %s" % (dstfile + '/' + rpmfile, e)
                     ftpio.log(l)
-                    print l
+                    print(l)
 
         f = open(default_to + 'SRPMS/.metadata/' + srpm + '.info', 'a')
         for rpmfile in srcpkg.files['ARCH']:
@@ -254,7 +256,7 @@ for arch in ftp_archs:
             if rpmfile[-11:] == '.noarch.rpm' and config.separate_noarch:
                 move_noarch(f, arch, rpmfile, dstpkg)
             else:
-                if not dstpkg.files.has_key(arch):
+                if arch not in dstpkg.files:
                     f.write("file:%s:%s\n" % (arch, rpmfile))
                 srcfile = incoming_dir + arch + '/' + rpmfile
 
@@ -265,10 +267,10 @@ for arch in ftp_archs:
 
                 try:
                     mv(srcfile, dstfile)
-                except OSError, e:
+                except OSError as e:
                     l = "Moving %s to %s problem: %s" % (srcfile, dstfile, e)
                     ftpio.log(l)
-                    print l
+                    print(l)
         f.close()
 
         rm(incoming_dir + arch + '/' + uploadinfo)