~ubuntu-branches/ubuntu/edgy/rpm/edgy

« back to all changes in this revision

Viewing changes to Perl-RPM/ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Joey Hess
  • Date: 2002-01-22 20:56:57 UTC
  • Revision ID: james.westby@ubuntu.com-20020122205657-l74j50mr9z8ofcl5
Tags: upstream-4.0.3
ImportĀ upstreamĀ versionĀ 4.0.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Revision history for Perl extension RPM.
 
2
 
 
3
0.01  Thu May  4 12:04:34 2000
 
4
        - original version; created by h2xs 1.19
 
5
 
 
6
0.1   Mon May 22 00:59:54 PDT 2000
 
7
        - first alpha release
 
8
 
 
9
        Classes for RPM::Header and RPM::Database are (more or less) done.
 
10
        RPM::Constants appears to have everything that is expected to be
 
11
        needed (i.e., any changes should result in shortening the list of
 
12
        exported symbols, rather than lengthening it). A basic top-level
 
13
        RPM namespace is present, but doesn't yet do anything useful. Some
 
14
        basic test scripts are in place, but more are (always) needed.
 
15
 
 
16
0.2   Mon May 29 17:59:20 PDT 2000
 
17
        - second alpha
 
18
 
 
19
        Class for RPM::Error added. The code is in the RPM.xs file, but
 
20
        the docs and accessors are done in RPM/Error.pm.
 
21
 
 
22
        All sub-classes moved to RPM/.
 
23
 
 
24
        More documentation added, especially to RPM::Constants.
 
25
 
 
26
        RPM::Constants had about a dozen or so trimmed out.
 
27
 
 
28
        Found error in Database.xs where the FIRSTKEY/NEXTKEY pair would
 
29
        have returned string-ified references instead of package names,
 
30
        because of not taking the first array element. I really plan to
 
31
        change the RPM::Header::FETCH interface.
 
32
 
 
33
        Added two utility functions under the RPM::* space for getting O/S
 
34
        and architecture names.
 
35
 
 
36
        Put in the start of thread-safing the module. But this part of the
 
37
        API is still pretty black in the Lockheed Skunkworks sense of the
 
38
        word, so it isn't at all complete.
 
39
 
 
40
0.25    Mon Jun  5 00:54:59 PDT 2000
 
41
        - third alpha
 
42
 
 
43
        Fixes to the thread-safing code. When built against a 5.6.0 configured
 
44
        for threading, several problems were found. All (current) tests now
 
45
        pass on that configuration.
 
46
 
 
47
        Added a file, IMPORTANT.perl, to the distribution that explains the
 
48
        nature of a condition that can prevent the extension from working on
 
49
        any version of Perl not installed from an rpm.
 
50
 
 
51
        Still more trimming of tokens out of Constants.pm that are not of use
 
52
        by the interface being provided. Filled in a few more in terms of
 
53
        documentation.
 
54
 
 
55
        Found a case in RPM::Header that would cause core-dumps: Any tags found
 
56
        by the iterator that were not exported for the API by the rpm lib
 
57
        could cause a null pointer to be passed through to an entry point that
 
58
        was several lines past where I had normally checked for the null. This
 
59
        meant that source RPMs would almost certainly break, since the
 
60
        offending tags only showed up when I started testing against SRPMS.
 
61
        Now, the iterators skip over these internal tags. The normal FETCH
 
62
        method already tested for this, but the interators were sneaking past
 
63
        those tests.
 
64
 
 
65
        Added a method to the RPM::Header class, is_source(), that returns a
 
66
        true value (1) if the header is associated with a source RPM.
 
67
 
 
68
0.26    Fri Jul 14 01:03:02 PDT 2000
 
69
        - fourth alpha
 
70
 
 
71
        Added NVR() method to RPM::Header for obvious reasons of convenience.
 
72
        Also added cmpver method, which calls into the rpmCompareVersion() API
 
73
        hook to compare two headers' version/release data with an internal
 
74
        algorithm that handles numerical and alpha content in the tags.
 
75
 
 
76
        Took out all remaining warn()'s and croak()'s, replacing them with
 
77
        rpm_error() calls. Most notable in the error-return cases of
 
78
        RPM::Database::init and ::rebuild.
 
79
 
 
80
        More thread-safing, in particular the heretofore-ignored RPM::Constants
 
81
        XS module.
 
82
 
 
83
        Added a sample script in utils, called rpmprune. It has a --help
 
84
        summary and a man page, see those for details.
 
85
 
 
86
0.27    Tue Aug  8 00:02:22 PDT 2000
 
87
        - fifth alpha
 
88
 
 
89
        Added filenames() method to RPM::Header. This re-assembles the list of
 
90
        filenames from the components in the tags, BASENAMES, DIRNAMES and
 
91
        DIRINDEXES.
 
92
 
 
93
        Added scalar_tag() method to RPM::Header. This returns a 0/1 value
 
94
        based on whether the return value for a given flag is an array ref or
 
95
        scalar (respectively). Can be called with either a string or a number
 
96
        argument. Can be called as a static (class) method.
 
97
 
 
98
        Added RPM/Error.xs and integrated into the build. All the XS code for
 
99
        RPM::Error that was previously in RPM.xs has been moved here.
 
100
 
 
101
        Added export of %RPM to RPM::Database. If requested, this is a hash
 
102
        pre-tied to the RPM::Database package (and thus the rpm database). One
 
103
        may also request $RPM and get an object referencing a tied hash.
 
104
 
 
105
        The return values from fetches on header objects has been completely
 
106
        revised. Tags are now explicitly defined as scalar or list in nature.
 
107
        The scalar_tag() method above is a part of this. The return value from
 
108
        a scalar tag is now a plain scalar. There is no more need for $_->[0]
 
109
        on scalar returns. Lists are still returned as list references, and
 
110
        undef is still used to signify problems. Tests have been added to
 
111
        t/02_headers.t for this, and tests in t/01_database.t were updated to
 
112
        use the new syntax. This does not obsolete the RPM::Header::NVR method,
 
113
        as that is a much faster means of fetching those three items than a
 
114
        stock fetch of the three individual tags would be.
 
115
 
 
116
        More tags/values documented in RPM::Constants.
 
117
 
 
118
0.28    Fri Aug 18 01:29:35 PDT 2000
 
119
        - sixth alpha
 
120
 
 
121
        Considerable additions made to the documentation in RPM::Constants, as
 
122
        well as a few corrections. The prototype of the constant() function
 
123
        was changed, as well.
 
124
 
 
125
        Several bugs were addressed in RPM::Header, most notably: Error returns
 
126
        now correctly return a value of "undef"; A blocking issue surrounding
 
127
        multiple RPM::Header objects from ftp:// sources is fixed; the mode
 
128
        with which files are opened was also changed to allow for reading off
 
129
        of STDIN. The error-return issue was also applied to RPM::Database.
 
130
 
 
131
        RPM::Header now has a source_name() accessor method that returns the
 
132
        file name (or URI) that the header was read from. This is null if the
 
133
        header came from the database.
 
134
 
 
135
0.29    Wed Oct  4 22:29:56 PDT 2000
 
136
        - seventh alpha
 
137
 
 
138
        The only change of note in this release is compatibility with version
 
139
        4.0 of RPM. Additionally, some flags to the C compiler to work with
 
140
        the gcc that is distributed with Red Hat Linux 7. This version has
 
141
        been tested on both 6.2 and 7 systems.
 
142
 
 
143
0.291   Fri Oct 13 01:45:18 PDT 2000
 
144
        - eighth alpha
 
145
 
 
146
        The flags that are created from the rpm version are now passed for
 
147
        3.0.X, as well.
 
148
 
 
149
        A thread-safing bug was found and fixed in Header.xs. An unused
 
150
        variable was removed.
 
151
 
 
152
        Makefile.PL has some large-scale work, including the addition of a
 
153
        template spec file following the __DATA__ token, code to expand this
 
154
        file using the values that MakeMaker has derived for the package,
 
155
        generation of make rules to construct *.rpm and *.srpm files, and
 
156
        generation of "rpmrc" and "rpmmacro" files to use in invoking rpm
 
157
        (to force all operation into the local dir area).
 
158
 
 
159
0.292   Mon Nov 13 22:40:15 PST 2000
 
160
        - ninth alpha
 
161
 
 
162
        Some unused variables were found in several places.
 
163
 
 
164
        Moved away from the self-tie mechanism and instead handle the data
 
165
        opacity in a completely different fashion. This simplified some code,
 
166
        muddled some, but ultimately led to the removal of several #define
 
167
        macros, more unused variable removal, and (hopefully) more stable
 
168
        code.
 
169
 
 
170
        Addressed a problem in both RPM::Database and RPM::Header XS code
 
171
        wherein destructors were not getting called when objects were
 
172
        implicitly or explicitly freed.
 
173
 
 
174
        Added more tests to the test suite.
 
175
 
 
176
        Changed the names of some of the find_* routines in RPM::Database.
 
177
        See the manual page. The old names were confusing me, despite my
 
178
        direct familiarity with the code!
 
179
 
 
180
        The find_* functions in RPM::Database may now take a RPM::Header
 
181
        object as their argument, and will use the package's name for the
 
182
        searches.
 
183
 
 
184
        It's still leaking RPM::Header objects in the RPM::Database routines.
 
185
        The alternative is a nasty mix of "attempt to free unreferenced
 
186
        scalar" errors and core dumps.
 
187
 
 
188
0.30    Wed Mar  7 22:13:40 PST 2001
 
189
        - tenth alpha
 
190
 
 
191
        Much of the leakage of RPM::Header objects is now gone, due mostly to
 
192
        changing the prototype of rpmdb_FETCH to returning a SV* instead of
 
193
        a RPM::Header reference. The various class DESTROY methods seem to be
 
194
        getting called in the correct order, now.
 
195
 
 
196
        Caught a case in the RPM::Header class where attempting to reference
 
197
        an element of a non-existent tag would trigger auto-vivification on
 
198
        that key, which in turn was leading to some bad calls being made to
 
199
        the rpmlib routines.
 
200
 
 
201
        Re-did the av-assignment in rpmhdr_create. This should save on SV*
 
202
        creation, though it might not have been a leak. Still, this method
 
203
        is more efficient overall.
 
204
 
 
205
        Newer versions of rpm 4.0 tickled a bug in which a database offset
 
206
        value might get sent in without being initialized first. This was
 
207
        caught and fixed. Also related to the 3.0/4.0 rift, some variables
 
208
        only used for 3.0.X are now declared within #ifdef's to defeat 'unused'
 
209
        warnings.
 
210
 
 
211
        The current state of the module will be released to allow for use by
 
212
        other parties, without the wait for any ongoing development milestones
 
213
        on my part.
 
214
 
 
215
0.31    Fri Apr 27 01:45:37 PDT 2001
 
216
        - alpha eleven
 
217
 
 
218
        Re-worked most of RPM/Constants.xs to accomodate the change from
 
219
        #define to enum values in 4.0.2. This will be released as an
 
220
        interim version, since Red Hat is shipping 7.1 with this version of
 
221
        rpm.
 
222
 
 
223
0.32    Tue May 15 00:54:20 PDT 2001
 
224
        - alpha twelve
 
225
 
 
226
        Found and fixed a bug in RPM/Database.xs that was causing more of
 
227
        the "Attempt to free unreferenced scalar" messages. In the process,
 
228
        noticed that caching of values during iteration wasn't actually
 
229
        working as designed. The resulting fix should improve database look-ups
 
230
        fairly noticably.
 
231
 
 
232
        Two more places found (one in RPM/Header.xs, one in RPM/Database.xs)
 
233
        that were contributing to memory leakage.
 
234
 
 
235
        A lot of changes to RPM/Constants.xs in terms of reducing the number
 
236
        and length of string-compares made in constant look-ups. This is most
 
237
        noticable in the RPM* set of constants, where the breakdown is the
 
238
        most granular. On the main dev box (a P-1/233MHz) this sped up the
 
239
        full test suite by over 25%.