pld-ftp-admin: scripts/sign.py - sign pkgs using external rpm binary
glen
glen at pld-linux.org
Wed May 27 19:16:01 CEST 2009
Author: glen Date: Wed May 27 17:16:01 2009 GMT
Module: pld-ftp-admin Tag: HEAD
---- Log message:
- sign pkgs using external rpm binary
---- Files affected:
pld-ftp-admin/scripts:
sign.py (1.2 -> 1.3)
---- Diffs:
================================================================
Index: pld-ftp-admin/scripts/sign.py
diff -u pld-ftp-admin/scripts/sign.py:1.2 pld-ftp-admin/scripts/sign.py:1.3
--- pld-ftp-admin/scripts/sign.py:1.2 Wed May 27 18:52:02 2009
+++ pld-ftp-admin/scripts/sign.py Wed May 27 19:15:56 2009
@@ -8,6 +8,7 @@
import ftpio
from config import sign_key
import rpm
+import subprocess
if len(sys.argv) < 3:
print >>sys.stderr, "ERR: not enough parameters given"
@@ -54,13 +55,24 @@
return key == sigid[-len(key):]
+def signpkgs(files):
+ if not os.path.isfile('/usr/bin/gpg'):
+ raise OSError, 'Missing gnupg binary'
+ if not os.path.isfile('/bin/rpm'):
+ raise OSError, 'Missing rpm binary'
+
+ cmd = ['/bin/rpm', '--resign']
+ cmd += files
+ rc = subprocess.call(cmd, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, close_fds = True)
+ if rc != 0:
+ print >>sys.stderr, "package signing failed"
+ sys.exit(rc)
+
try:
tree = ftptree.FtpTree(sys.argv[1]) #, loadall=True)
tree.mark4moving(sys.argv[2:])
files = tree.rpmfiles()
- from pprint import pprint
-
print "Checking signatures of %d files from %d packages" % (len(files), len(tree.loadedpkgs))
sign = []
for file in files:
@@ -69,6 +81,7 @@
if len(sign) > 0:
print "Signing %d packages" % len(sign)
+ signpkgs(sign)
else:
print "No packages to sign"
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/scripts/sign.py?r1=1.2&r2=1.3&f=u
More information about the pld-cvs-commit
mailing list