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
|
Revision history for Perl extension RPM.
0.01 Thu May 4 12:04:34 2000
- original version; created by h2xs 1.19
0.1 Mon May 22 00:59:54 PDT 2000
- first alpha release
Classes for RPM::Header and RPM::Database are (more or less) done.
RPM::Constants appears to have everything that is expected to be
needed (i.e., any changes should result in shortening the list of
exported symbols, rather than lengthening it). A basic top-level
RPM namespace is present, but doesn't yet do anything useful. Some
basic test scripts are in place, but more are (always) needed.
0.2 Mon May 29 17:59:20 PDT 2000
- second alpha
Class for RPM::Error added. The code is in the RPM.xs file, but
the docs and accessors are done in RPM/Error.pm.
All sub-classes moved to RPM/.
More documentation added, especially to RPM::Constants.
RPM::Constants had about a dozen or so trimmed out.
Found error in Database.xs where the FIRSTKEY/NEXTKEY pair would
have returned string-ified references instead of package names,
because of not taking the first array element. I really plan to
change the RPM::Header::FETCH interface.
Added two utility functions under the RPM::* space for getting O/S
and architecture names.
Put in the start of thread-safing the module. But this part of the
API is still pretty black in the Lockheed Skunkworks sense of the
word, so it isn't at all complete.
0.25 Mon Jun 5 00:54:59 PDT 2000
- third alpha
Fixes to the thread-safing code. When built against a 5.6.0 configured
for threading, several problems were found. All (current) tests now
pass on that configuration.
Added a file, IMPORTANT.perl, to the distribution that explains the
nature of a condition that can prevent the extension from working on
any version of Perl not installed from an rpm.
Still more trimming of tokens out of Constants.pm that are not of use
by the interface being provided. Filled in a few more in terms of
documentation.
Found a case in RPM::Header that would cause core-dumps: Any tags found
by the iterator that were not exported for the API by the rpm lib
could cause a null pointer to be passed through to an entry point that
was several lines past where I had normally checked for the null. This
meant that source RPMs would almost certainly break, since the
offending tags only showed up when I started testing against SRPMS.
Now, the iterators skip over these internal tags. The normal FETCH
method already tested for this, but the interators were sneaking past
those tests.
Added a method to the RPM::Header class, is_source(), that returns a
true value (1) if the header is associated with a source RPM.
0.26 Fri Jul 14 01:03:02 PDT 2000
- fourth alpha
Added NVR() method to RPM::Header for obvious reasons of convenience.
Also added cmpver method, which calls into the rpmCompareVersion() API
hook to compare two headers' version/release data with an internal
algorithm that handles numerical and alpha content in the tags.
Took out all remaining warn()'s and croak()'s, replacing them with
rpm_error() calls. Most notable in the error-return cases of
RPM::Database::init and ::rebuild.
More thread-safing, in particular the heretofore-ignored RPM::Constants
XS module.
Added a sample script in utils, called rpmprune. It has a --help
summary and a man page, see those for details.
|