1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
r"""RPM Module
This module enables you to manipulate rpms and the rpm database.
"""
import warnings
import os
from rpm._rpm import *
from rpm.transaction import *
import rpm._rpm as _rpm
_RPMVSF_NODIGESTS = _rpm._RPMVSF_NODIGESTS
_RPMVSF_NOHEADER = _rpm._RPMVSF_NOHEADER
_RPMVSF_NOPAYLOAD = _rpm._RPMVSF_NOPAYLOAD
_RPMVSF_NOSIGNATURES = _rpm._RPMVSF_NOSIGNATURES
__version__ = _rpm.__version__
__version_info__ = tuple(__version__.split('.'))
# try to import build bits but dont require it
try:
from rpm._rpmb import *
except ImportError:
pass
# try to import signing bits but dont require it
try:
from rpm._rpms import *
except ImportError:
pass
# backwards compatibility + give the same class both ways
ts = TransactionSet
def headerLoad(*args, **kwds):
warnings.warn("Use rpm.hdr() instead.", DeprecationWarning, stacklevel=2)
return hdr(*args, **kwds)
def _doHeaderListFromFD(rpm_fd, retrofit):
hlist = []
while 1:
try:
h = hdr(rpm_fd)
if retrofit:
h.convert(HEADERCONV_RETROFIT_V3)
hlist.append(h)
except _rpm.error:
break
return hlist
def readHeaderListFromFD(file_desc, retrofit = True):
if not isinstance(file_desc, fd):
file_desc = fd(file_desc)
return _doHeaderListFromFD(file_desc, retrofit)
def readHeaderListFromFile(path, retrofit = True):
f = fd(path)
hlist = _doHeaderListFromFD(f, retrofit)
f.close()
return hlist
def readHeaderFromFD(file_desc):
if not isinstance(file_desc, fd):
file_desc = fd(file_desc)
try:
offset = file_desc.tell()
h = hdr(file_desc)
except (_rpm.error, IOError):
offset = None
h = None
return (h, offset)
def signalsCaught(siglist):
caught = []
for sig in siglist:
if signalCaught(sig):
caught.append(sig)
return caught
def dsSingle(TagN, N, EVR = "", Flags = RPMSENSE_ANY):
return ds((N, EVR, Flags), TagN)
|