pld-ftp-admin: modules/sign.py, scripts/sign.py Sign all rpm files with ask...
arekm
arekm at pld-linux.org
Wed Aug 5 09:12:32 CEST 2009
Author: arekm Date: Wed Aug 5 07:12:31 2009 GMT
Module: pld-ftp-admin Tag: HEAD
---- Log message:
Sign all rpm files with asking for password only once.
---- Files affected:
pld-ftp-admin/modules:
sign.py (1.1 -> 1.2)
pld-ftp-admin/scripts:
sign.py (1.8 -> 1.9)
---- Diffs:
================================================================
Index: pld-ftp-admin/modules/sign.py
diff -u pld-ftp-admin/modules/sign.py:1.1 pld-ftp-admin/modules/sign.py:1.2
--- pld-ftp-admin/modules/sign.py:1.1 Wed May 27 21:23:46 2009
+++ pld-ftp-admin/modules/sign.py Wed Aug 5 09:12:26 2009
@@ -2,8 +2,10 @@
# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
import os
+import sys
import rpm
import subprocess
+import pexpect
from config import sign_key
def getSigInfo(hdr):
@@ -37,13 +39,22 @@
return sign_key == sigid[-len(sign_key):]
-def signpkgs(files):
+def signpkgs(files, password):
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', '--define', '_signature gpg', '--define', '_gpg_name ' + sign_key] + files
- rc = subprocess.call(cmd, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, close_fds = True)
+ os.putenv('LC_ALL', 'C')
+ args = ['--resign', '--define', '_signature gpg', '--define', '_gpg_name ' + sign_key] + files
+ child = pexpect.spawn('/bin/rpm', args)
+ child.logfile = sys.stderr
+ child.expect('Enter pass phrase:', timeout=30)
+ child.sendline(password)
+ child.expect(pexpect.EOF)
+ child.close()
+ rc = child.exitstatus
+ #cmd = ['/bin/rpm', '--resign', '--define', '_signature gpg', '--define', '_gpg_name ' + sign_key] + files
+ #rc = subprocess.call(cmd, stdin = subprocess.PIPE, stdout = subprocess.PIPE, stderr = subprocess.PIPE, close_fds = True)
if rc != 0:
raise OSError, 'package signing failed'
================================================================
Index: pld-ftp-admin/scripts/sign.py
diff -u pld-ftp-admin/scripts/sign.py:1.8 pld-ftp-admin/scripts/sign.py:1.9
--- pld-ftp-admin/scripts/sign.py:1.8 Sun Jun 28 19:43:58 2009
+++ pld-ftp-admin/scripts/sign.py Wed Aug 5 09:12:26 2009
@@ -4,6 +4,7 @@
import sys, os
sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
import ftptree
+import getpass
from common import checkdir
import ftpio
from config import sign_key
@@ -82,10 +83,11 @@
yield seq[-mod:]
print "Total %d files to sign" % len(sign)
+password = getpass.getpass("Enter signing password: ")
try:
for x in chunk(sign, 512):
print "Signing %d files" % len(x)
- signpkgs(x)
+ signpkgs(x, password)
except OSError, e:
print >>sys.stderr, "ERR: %s" % e
exit(1)
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/modules/sign.py?r1=1.1&r2=1.2&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/pld-ftp-admin/scripts/sign.py?r1=1.8&r2=1.9&f=u
More information about the pld-cvs-commit
mailing list