1 |
The following packages require perl-RPM4: |
2 |
|
3 |
(1) iurt |
4 |
(2) perl-MDV-Repsys |
5 |
(3) perl-Youri-Package-RPM-Builder |
6 |
(4) perl-Youri-Package-RPM-Updater |
7 |
(5) perl-Youri-Package |
8 |
(6) mdv-youri-core |
9 |
|
10 |
notes: |
11 |
- (5) doesn't use proposes both Youri::Package::URPM and |
12 |
Youri::Package::RPM4, and doesn't force usage of any. |
13 |
- (6) is a fork of perl-Youri-Package, which uses Youri::Package::URPM |
14 |
(and so perl-RPM4 is unused) |
15 |
|
16 |
here is below the various functions/methods of perl-RPM4 used by the |
17 |
packages above. |
18 |
|
19 |
RPM4::add_macro (2)(3)(4) |
20 |
RPM4::expand (2)(3)(4) [renamed expand_macro in rpm5] |
21 |
RPM4::installsrpm (2)(4) |
22 |
RPM4::rpmvercmp (4) |
23 |
RPM4::setverbosity (2)(4) |
24 |
RPM4::Sign->new |
25 |
$sign->rpmssign [not available in rpm5] |
26 |
RPM4::Transaction->new |
27 |
$db->transadd (3) [renamed add_install in rpm5] |
28 |
$db->transcheck (3) [renamed check in rpm5] |
29 |
$db->transpbs (3) [renamed problems in rpm5] |
30 |
$pbs->hasnext (3) [not available directly in rpm5] |
31 |
$pbs->init (3) [not available directly in rpm5] |
32 |
$pbs->problem (3) [not available directly in rpm5] |
33 |
RPM4::Spec->new |
34 |
$spec->binrpm (3) |
35 |
$spec->sources (2) |
36 |
$spec->sources_url (4) |
37 |
$spec->srcheader (2)(3)(4) |
38 |
$spec->srcrpm (3) |
39 |
RPM4::Header->new |
40 |
$header->compare |
41 |
$header->dep [renamed dependencies in rpm5] |
42 |
$deps->info [not available directly in rpm5] |
43 |
$deps->init |
44 |
$deps->next |
45 |
$header->files |
46 |
$files->filename |
47 |
$files->init |
48 |
$files->md5 [renamed digest in rpm5] |
49 |
$files->mode |
50 |
$files->next |
51 |
$header->fullname [not available directly in rpm5] |
52 |
$header->issrc [renamed is_source_package in rpm5] |
53 |
$header->queryformat (1)(2) [renamed tagformat in rpm5] |
54 |
$header->sourcerpmname [not available directly in rpm5] |
55 |
$header->tag (4) |
56 |
RPM4::Header::Dependencies->new [renamed RPM::Dependencies in rpm5] |
57 |
$dep->overlap |
58 |
|
59 |
nb: |
60 |
- functions/methods above which are not used by (1), (2), (3), (4) are |
61 |
used by either (5) or (6) (usually by both) |
62 |
- i have annotated with [... in rpm5] the changes between perl-RPM4 |
63 |
and RPM perl module in rpm5 CVS |
64 |
- except for ->rpmsign, the "not available in rpm5" have similar |
65 |
functions in rpm5 RPM module |
66 |
|
67 |
|
68 |
diff -p -up RPM4-0.23/src/Makefile.PL.rpm46 RPM4-0.23/src/Makefile.PL |
69 |
--- RPM4-0.23/src/Makefile.PL.rpm46 2007-03-01 00:56:26.000000000 +0100 |
70 |
+++ RPM4-0.23/src/Makefile.PL 2009-01-19 13:23:30.000000000 +0100 |
71 |
@@ -33,17 +33,11 @@ foreach (qw( |
72 |
4.2.0 |
73 |
4.4.1 |
74 |
4.4.2 |
75 |
- 4.4.3 |
76 |
- 4.4.4 |
77 |
- 4.4.5 |
78 |
- 4.4.6 |
79 |
- 4.4.7 |
80 |
- 4.4.8 |
81 |
)) { |
82 |
$v = $_; |
83 |
$v =~ s/\./_/g; |
84 |
print $FH "#define RPM$v\n"; |
85 |
- $rpmv eq $_ and last; |
86 |
+ $rpmv =~ /^\Q$_/ and last; |
87 |
} |
88 |
print $FH "\n#endif\n"; |
89 |
close($FH); |
90 |
@@ -89,7 +83,7 @@ WriteMakefile( |
91 |
VERSION_FROM => '../lib/RPM4.pm', |
92 |
OBJECT => "RPM4.o RPM4sign.o $obj", |
93 |
INC => "-I$rpmheaderlocation", |
94 |
- LIBS => "-lrpm -lrpmio -lrpmdb -lrpmbuild -lpopt -lz -lbz2 $ldd", |
95 |
- 'CCFLAGS' => $fl, |
96 |
+ LIBS => "-lrpm -lrpmio -lrpmbuild -lpopt -lz -lbz2 $ldd", |
97 |
+ 'CCFLAGS' => "-Wall $fl", |
98 |
depend => { "RPM4.xs" => join(" ", @rpmconstantfiles) }, |
99 |
); |
100 |
diff -p -up RPM4-0.23/src/RPM4.h.rpm46 RPM4-0.23/src/RPM4.h |
101 |
--- RPM4-0.23/src/RPM4.h.rpm46 2005-12-20 02:33:44.000000000 +0100 |
102 |
+++ RPM4-0.23/src/RPM4.h 2009-01-19 13:06:10.000000000 +0100 |
103 |
@@ -16,15 +16,6 @@ int rpmchecksig(rpmts ts, const char * f |
104 |
* We Import its here |
105 |
* This File should be the last included */ |
106 |
|
107 |
-/* From rpmlead.h */ |
108 |
- |
109 |
-#ifndef _H_RPMLEAD |
110 |
- |
111 |
-rpmRC writeLead(FD_t fd, const struct rpmlead *lead); |
112 |
-rpmRC readLead(FD_t fd, struct rpmlead *lead); |
113 |
- |
114 |
-#endif /* _H_RPMLEAD */ |
115 |
- |
116 |
/* From signature.h */ |
117 |
|
118 |
#ifndef H_SIGNATURE |
119 |
@@ -48,7 +39,7 @@ rpmRC rpmReadSignature(FD_t fd, Header * |
120 |
int rpmWriteSignature(FD_t fd, Header h); |
121 |
|
122 |
int rpmAddSignature(Header sig, const char * file, |
123 |
- int_32 sigTag, const char * passPhrase); |
124 |
+ int32_t sigTag, const char * passPhrase); |
125 |
|
126 |
#define RPMLOOKUPSIG_QUERY 0 /*!< Lookup type in effect */ |
127 |
#define RPMLOOKUPSIG_DISABLE 1 /*!< Disable (--sign was not given) */ |
128 |
@@ -71,10 +62,10 @@ const char * rpmDetectPGPVersion(pgpVers |
129 |
*/ |
130 |
typedef /*@abstract@*/ struct entryInfo_s * entryInfo; |
131 |
struct entryInfo_s { |
132 |
- int_32 tag; /*!< Tag identifier. */ |
133 |
- int_32 type; /*!< Tag data type. */ |
134 |
- int_32 offset; /*!< Offset into data segment (ondisk only). */ |
135 |
- int_32 count; /*!< Number of tag elements. */ |
136 |
+ int32_t tag; /*!< Tag identifier. */ |
137 |
+ int32_t type; /*!< Tag data type. */ |
138 |
+ int32_t offset; /*!< Offset into data segment (ondisk only). */ |
139 |
+ int32_t count; /*!< Number of tag elements. */ |
140 |
}; |
141 |
|
142 |
/** \ingroup header |
143 |
diff -p -up RPM4-0.23/src/RPM4.xs.rpm46 RPM4-0.23/src/RPM4.xs |
144 |
--- RPM4-0.23/src/RPM4.xs.rpm46 2007-07-22 02:23:52.000000000 +0200 |
145 |
+++ RPM4-0.23/src/RPM4.xs 2009-01-19 13:30:14.000000000 +0100 |
146 |
@@ -78,10 +78,14 @@ |
147 |
#include <rpm/rpmps.h> |
148 |
#include <rpm/rpmfi.h> |
149 |
#include <rpm/rpmpgp.h> |
150 |
-#include <rpm/misc.h> |
151 |
#include <rpm/rpmbuild.h> |
152 |
+#include <rpm/rpmfileutil.h> |
153 |
#include <rpm/rpmlib.h> |
154 |
+#include <rpm/rpmlog.h> |
155 |
#include <rpm/rpmpgp.h> |
156 |
+#include <rpm/rpmtag.h> |
157 |
+#define _RPM_4_4_COMPAT |
158 |
+#include <rpm/rpmlegacy.h> |
159 |
|
160 |
#ifdef HAVE_RPMCONSTANT |
161 |
#include <rpmconstant/rpmconstant.h> |
162 |
@@ -189,10 +193,10 @@ void * |
163 |
#endif |
164 |
transCallback(const void *h, |
165 |
const rpmCallbackType what, |
166 |
- const RPM_CALLBACK_AMOUNT_TYPE amount, |
167 |
- const RPM_CALLBACK_AMOUNT_TYPE total, |
168 |
- const void * pkgKey, |
169 |
- void * data) { |
170 |
+ const rpm_loff_t amount, |
171 |
+ const rpm_loff_t total, |
172 |
+ fnpyKey pkgKey, |
173 |
+ rpmCallbackData data) { |
174 |
|
175 |
/* The call back is used to open/close file, so we fix value, run the perl callback |
176 |
* and let rpmShowProgress from rpm rpmlib doing its job. |
177 |
@@ -292,7 +296,7 @@ void * |
178 |
* is set for for the logging system. |
179 |
* If the callback is set, rpm does not print any message, |
180 |
* and let the callback to do it */ |
181 |
-void logcallback(void) { |
182 |
+int logcallback(rpmlogRec rec, rpmlogCallbackData data) { |
183 |
dSP; |
184 |
if (log_callback_function) { |
185 |
int logcode = rpmlogCode(); |
186 |
@@ -304,7 +308,7 @@ void logcallback(void) { |
187 |
XPUSHs(sv_2mortal(newSVpv("logcode", 0))); |
188 |
XPUSHs(sv_2mortal(newSViv(logcode))); |
189 |
XPUSHs(sv_2mortal(newSVpv("msg", 0))); |
190 |
- XPUSHs(sv_2mortal(newSVpv(rpmlogMessage(), 0))); |
191 |
+ XPUSHs(sv_2mortal(newSVpv((char *) rpmlogMessage(), 0))); |
192 |
XPUSHs(sv_2mortal(newSVpv("priority", 0))); |
193 |
XPUSHs(sv_2mortal(newSViv(RPMLOG_PRI(logcode)))); |
194 |
PUTBACK; |
195 |
@@ -313,47 +317,6 @@ void logcallback(void) { |
196 |
} |
197 |
} |
198 |
|
199 |
-/* This callback is run during transcheck */ |
200 |
-int transSolveCallback(rpmts ts, rpmds Dep, const void * data) { |
201 |
- int rc = 0; |
202 |
- int count; |
203 |
- dSP; |
204 |
-#ifdef HDLISTDEBUG |
205 |
- PRINTF_CALL; |
206 |
-#endif |
207 |
- /* Should return -1 retry, 0 ignore, 1 not found */ |
208 |
- rc = rpmtsSolve(ts, Dep, data); |
209 |
- /* PUSHMARK(SP); */ |
210 |
- if (ts) { |
211 |
- XPUSHs(sv_2mortal(newSVpv("db", 0))); |
212 |
- XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), bless_rpmts, rpmtsLink(ts, "RPM4 transSolveCallback()")))); |
213 |
-#ifdef HDRPMMEM |
214 |
- PRINTF_NEW(bless_rpmts, ts, ts->nrefs); |
215 |
-#endif |
216 |
- |
217 |
- } |
218 |
- if (Dep) { |
219 |
- XPUSHs(sv_2mortal(newSVpv("dep", 0))); |
220 |
- XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), bless_rpmds, rpmdsLink(Dep, "RPM4 transSolveCallback()")))); |
221 |
-#ifdef HDRPMMEM |
222 |
- PRINTF_NEW(bless_rpmds, Dep, Dep->nrefs); |
223 |
-#endif |
224 |
- } |
225 |
- XPUSHs(sv_2mortal(newSVpv("rc", 0))); |
226 |
- XPUSHs(sv_2mortal(newSViv(rc))); |
227 |
- PUTBACK; |
228 |
- count = call_sv((SV *) data, G_SCALAR); |
229 |
- SPAGAIN; |
230 |
- if (count) { |
231 |
- rc = POPi; |
232 |
- if (rc < -1 || rc > 1) |
233 |
- croak("Uh Oh! Your perl callback should return 1 (retry), 0 (ignore) or 1 (not found) and not %d", rc); |
234 |
- } else { |
235 |
- rc = 1; |
236 |
- } |
237 |
- return rc; |
238 |
-} |
239 |
- |
240 |
/************************************************** |
241 |
* Real Function rpmts function with double call * |
242 |
* Aka function(arg) or RPM4::Db->function(arg) * |
243 |
@@ -416,7 +379,7 @@ void _newdep(SV * sv_deptag, char * name |
244 |
|
245 |
/* Get a new specfile */ |
246 |
void _newspec(rpmts ts, char * filename, SV * svpassphrase, SV * svrootdir, SV * svcookies, SV * svanyarch, SV * svforce, SV * svverify) { |
247 |
- Spec spec = NULL; |
248 |
+ rpmSpec spec = NULL; |
249 |
char * passphrase = NULL; |
250 |
char * rootdir = NULL; |
251 |
char * cookies = NULL; |
252 |
@@ -446,7 +409,15 @@ void _newspec(rpmts ts, char * filename, |
253 |
verify = SvIV(svverify); |
254 |
|
255 |
if (filename) { |
256 |
- if (!parseSpec(ts, filename, rootdir, 0, passphrase, cookies, anyarch, force, verify)) |
257 |
+ if (!parseSpec(ts, filename, rootdir |
258 |
+#ifndef RPM4_4_8 |
259 |
+ , NULL |
260 |
+#endif |
261 |
+ ,0, passphrase, cookies, anyarch, force |
262 |
+#ifdef RPM4_4_8 |
263 |
+ , verify |
264 |
+#endif |
265 |
+ )) |
266 |
spec = rpmtsSetSpec(ts, NULL); |
267 |
#ifdef HHACK |
268 |
} else { |
269 |
@@ -465,15 +436,15 @@ void _newspec(rpmts ts, char * filename, |
270 |
} |
271 |
|
272 |
/* Building a spec file */ |
273 |
-int _specbuild(rpmts ts, Spec spec, SV * sv_buildflags) { |
274 |
+int _specbuild(rpmts ts, rpmSpec spec, SV * sv_buildflags) { |
275 |
rpmBuildFlags buildflags = sv2rpmbuildflags(sv_buildflags); |
276 |
if (buildflags == RPMBUILD_NONE) croak("No action given for build"); |
277 |
return buildSpec(ts, spec, buildflags, 0); |
278 |
} |
279 |
|
280 |
void _installsrpms(rpmts ts, char * filename) { |
281 |
- const char * specfile = NULL; |
282 |
- const char * cookies = NULL; |
283 |
+ char * specfile = NULL; |
284 |
+ char * cookies = NULL; |
285 |
dSP; |
286 |
I32 gimme = GIMME_V; |
287 |
if (rpmInstallSource( |
288 |
@@ -514,9 +485,9 @@ BOOT: |
289 |
if (rpmReadConfigFiles(NULL, NULL) != 0) |
290 |
croak("Can't read configuration"); |
291 |
#ifdef HDLISTDEBUG |
292 |
-rpmSetVerbosity(RPMMESS_DEBUG); |
293 |
+rpmSetVerbosity(RPMLOG_DEBUG); |
294 |
#else |
295 |
-rpmSetVerbosity(RPMMESS_NORMAL); |
296 |
+rpmSetVerbosity(RPMLOG_NOTICE); |
297 |
#endif |
298 |
#ifdef HDRPMDEBUG |
299 |
_rpmds_debug = -1; |
300 |
@@ -572,10 +543,10 @@ setlogcallback(function) |
301 |
SV * function |
302 |
CODE: |
303 |
if (function == NULL || !SvOK(function)) { |
304 |
- rpmlogSetCallback(NULL); |
305 |
+ rpmlogSetCallback(NULL, NULL); |
306 |
} else if (SvTYPE(SvRV(function)) == SVt_PVCV) { |
307 |
log_callback_function = newSVsv(function); |
308 |
- rpmlogSetCallback(logcallback); |
309 |
+ rpmlogSetCallback(logcallback, NULL); |
310 |
} else |
311 |
croak("First arg is not a code reference"); |
312 |
|
313 |
@@ -583,7 +554,7 @@ void |
314 |
lastlogmsg() |
315 |
PPCODE: |
316 |
XPUSHs(sv_2mortal(newSViv(rpmlogCode()))); |
317 |
- XPUSHs(sv_2mortal(newSVpv(rpmlogMessage(), 0))); |
318 |
+ XPUSHs(sv_2mortal(newSVpv((char *) rpmlogMessage(), 0))); |
319 |
|
320 |
int |
321 |
setlogfile(filename) |
322 |
@@ -609,7 +580,7 @@ readconfig(rcfile = NULL, target = NULL) |
323 |
char * rcfile |
324 |
char * target |
325 |
CODE: |
326 |
- RETVAL = rpmReadConfigFiles(rcfile, target); |
327 |
+ RETVAL = rpmReadConfigFiles(rcfile && rcfile[0] ? rcfile : NULL, target); |
328 |
OUTPUT: |
329 |
RETVAL |
330 |
|
331 |
@@ -626,29 +597,7 @@ rpmlog(svcode, msg) |
332 |
void |
333 |
querytag() |
334 |
PREINIT: |
335 |
- int i = 0; |
336 |
- const struct headerSprintfExtension_s * ext = rpmHeaderFormats; |
337 |
- PPCODE: |
338 |
- for (i = 0; i < rpmTagTableSize; i++) { |
339 |
- XPUSHs(sv_2mortal(newSVpv(rpmTagTable[i].name + 7, 0))); |
340 |
- XPUSHs(sv_2mortal(newSViv(rpmTagTable[i].val))); |
341 |
- } |
342 |
- |
343 |
- while (ext->name != NULL) { |
344 |
- if (ext->type == HEADER_EXT_MORE) { |
345 |
- ext = ext->u.more; |
346 |
- continue; |
347 |
- } |
348 |
- for (i = 0; i < rpmTagTableSize; i++) { |
349 |
- if (!strcmp(rpmTagTable[i].name, ext->name)) |
350 |
- break; |
351 |
- } |
352 |
- if (i >= rpmTagTableSize && ext->type == HEADER_EXT_TAG) { |
353 |
- XPUSHs(sv_2mortal(newSVpv(ext->name + 7, 0))); |
354 |
- XPUSHs(sv_newmortal()); |
355 |
- } |
356 |
- ext++; |
357 |
- } |
358 |
+ CODE: |
359 |
|
360 |
int |
361 |
tagtypevalue(svtagtype) |
362 |
@@ -672,7 +621,7 @@ tagName(tag) |
363 |
PREINIT: |
364 |
const char *r = NULL; |
365 |
PPCODE: |
366 |
- r = tagName(tag); |
367 |
+ r = rpmTagGetName(tag); |
368 |
XPUSHs(sv_2mortal(newSVpv(r, 0))); |
369 |
|
370 |
void |
371 |
@@ -717,7 +666,7 @@ expand(name) |
372 |
PPCODE: |
373 |
const char * value = rpmExpand(name, NULL); |
374 |
XPUSHs(sv_2mortal(newSVpv(value, 0))); |
375 |
- free(value); |
376 |
+ free((char *) value); |
377 |
|
378 |
void |
379 |
expandnumeric(name) |
380 |
@@ -1205,10 +1154,10 @@ Header_queryformat(h, query) |
381 |
PREINIT: |
382 |
char *s = NULL; |
383 |
PPCODE: |
384 |
- s = headerSprintf(h, query, |
385 |
- rpmTagTable, rpmHeaderFormats, NULL); |
386 |
+ s = headerFormat(h, query, |
387 |
+ NULL); |
388 |
XPUSHs(sv_2mortal(newSVpv(s, 0))); |
389 |
- _free(s); |
390 |
+ free(s); |
391 |
|
392 |
void |
393 |
Header_fullname(h) |
394 |
@@ -1254,7 +1203,7 @@ void |
395 |
Header_nevr(header) |
396 |
Header header |
397 |
PPCODE: |
398 |
- PUSHs(sv_2mortal(newSVpv(hGetNEVR(header, NULL), 0))); |
399 |
+ PUSHs(sv_2mortal(newSVpv(headerGetNEVR(header, NULL), 0))); |
400 |
|
401 |
int |
402 |
Header_issrc(h) |
403 |
@@ -1686,7 +1635,7 @@ Ts_transadd(ts, header, key = NULL, upgr |
404 |
/* if (! (headerGetEntry(eiu->h, RPMTAG_PREFIXES, &pft, |
405 |
(void **) &paths, &c) && (c == 1))) { */ |
406 |
if (! headerIsEntry(header, RPMTAG_PREFIXES)) { |
407 |
- rpmMessage(RPMMESS_ERROR, |
408 |
+ rpmMessage(RPMLOG_ERR, |
409 |
_("package %s is not relocatable\n"), ""); |
410 |
XPUSHi((IV)1); |
411 |
XSRETURN(1); |
412 |
@@ -1828,22 +1777,10 @@ Ts_traverse_transaction(ts, callback, ty |
413 |
RETVAL |
414 |
|
415 |
int |
416 |
-Ts_transcheck(ts, callback = NULL) |
417 |
+Ts_transcheck(ts) |
418 |
rpmts ts |
419 |
- SV * callback |
420 |
CODE: |
421 |
- ts = rpmtsLink(ts, "RPM4 Db_transcheck()"); |
422 |
- if (callback != NULL && SvOK(callback) && SvTYPE(SvRV(callback)) == SVt_PVCV) { /* Be sure we have a code ref */ |
423 |
-#ifdef HDLISTDEBUG |
424 |
- PRINTF_CALL; |
425 |
-#endif |
426 |
- rpmtsSetSolveCallback(ts, transSolveCallback, (void *) callback); |
427 |
- } |
428 |
- |
429 |
RETVAL = rpmtsCheck(ts); |
430 |
- /* Restoring default rpm setting */ |
431 |
- rpmtsSetSolveCallback(ts, rpmtsSolve, NULL); |
432 |
- ts = rpmtsFree(ts); |
433 |
OUTPUT: |
434 |
RETVAL |
435 |
|
436 |
@@ -1908,7 +1845,7 @@ Ts__transpbs(ts) |
437 |
rpmps ps; |
438 |
PPCODE: |
439 |
ps = rpmtsProblems(ts); |
440 |
- if (ps && ps->numProblems) /* if no problem, return undef */ |
441 |
+ if (ps && rpmpsNumProblems(ps)) /* if no problem, return undef */ |
442 |
XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), bless_rpmps, ps))); |
443 |
|
444 |
int |
445 |
@@ -1916,22 +1853,22 @@ Ts_importpubkey(ts, filename) |
446 |
rpmts ts |
447 |
char * filename |
448 |
PREINIT: |
449 |
- const byte * pkt = NULL; |
450 |
+ uint8_t *pkt = NULL; |
451 |
size_t pktlen = 0; |
452 |
int rc; |
453 |
CODE: |
454 |
rpmtsClean(ts); |
455 |
|
456 |
- if ((rc = pgpReadPkts(filename, &pkt, &pktlen)) <= 0) { |
457 |
+ if ((rc = pgpReadPkts(filename, (uint8_t ** ) &pkt, &pktlen)) <= 0) { |
458 |
RETVAL = 1; |
459 |
} else if (rc != PGPARMOR_PUBKEY) { |
460 |
RETVAL = 1; |
461 |
- } else if (rpmcliImportPubkey(ts, pkt, pktlen) != RPMRC_OK) { |
462 |
+ } else if (rpmtsImportPubkey(ts, pkt, pktlen) != RPMRC_OK) { |
463 |
RETVAL = 1; |
464 |
} else { |
465 |
RETVAL = 0; |
466 |
} |
467 |
- pkt = _free(pkt); |
468 |
+ free(pkt); |
469 |
OUTPUT: |
470 |
RETVAL |
471 |
|
472 |
@@ -1976,7 +1913,7 @@ Ts_rpm2header(ts, filename) |
473 |
int |
474 |
Ts_specbuild(ts, spec, sv_buildflags) |
475 |
rpmts ts |
476 |
- Spec spec |
477 |
+ rpmSpec spec |
478 |
SV * sv_buildflags |
479 |
CODE: |
480 |
RETVAL = _specbuild(ts, spec, sv_buildflags); |
481 |
@@ -2129,7 +2066,7 @@ rpmlibdep() |
482 |
int i; |
483 |
#endif |
484 |
PPCODE: |
485 |
-#ifndef RPM4_4_3 |
486 |
+#if 0 |
487 |
num = rpmGetRpmlibProvides(&provNames, &provFlags, &provVersions); |
488 |
for (i = 0; i < num; i++) { |
489 |
#ifdef HDLISTDEBUG |
490 |
@@ -2616,20 +2553,13 @@ void |
491 |
Files_md5(Files) |
492 |
rpmfi Files |
493 |
PREINIT: |
494 |
- const byte * md5; |
495 |
- char * fmd5 = malloc((char) 33); |
496 |
+ const char * md5; |
497 |
PPCODE: |
498 |
if ((md5 = |
499 |
-#ifdef RPM4_4_6 |
500 |
- rpmfiDigest(Files, NULL, NULL) |
501 |
-#else |
502 |
- rpmfiMD5(Files) |
503 |
-#endif |
504 |
+ rpmfiFDigestHex(Files, NULL) |
505 |
) != NULL && *md5 != 0 /* return undef if empty */) { |
506 |
- (void) pgpHexCvt(fmd5, md5, 16); |
507 |
- XPUSHs(sv_2mortal(newSVpv(fmd5, 0))); |
508 |
+ XPUSHs(sv_2mortal(newSVpv(md5, 0))); |
509 |
} |
510 |
- _free(fmd5); |
511 |
|
512 |
void |
513 |
Files_link(Files) |
514 |
@@ -2772,7 +2702,7 @@ Spec_new(perlclass, specfile = NULL, ... |
515 |
|
516 |
void |
517 |
Spec_DESTROY(spec) |
518 |
- Spec spec |
519 |
+ rpmSpec spec |
520 |
CODE: |
521 |
#ifdef HDRPMMEM |
522 |
PRINTF_FREE(bless_spec, spec, -1); |
523 |
@@ -2781,7 +2711,7 @@ Spec_DESTROY(spec) |
524 |
|
525 |
void |
526 |
Spec_srcheader(spec) |
527 |
- Spec spec |
528 |
+ rpmSpec spec |
529 |
PPCODE: |
530 |
if ( ! spec->sourceHeader) |
531 |
initSourceHeader(spec); |
532 |
@@ -2789,7 +2719,7 @@ Spec_srcheader(spec) |
533 |
|
534 |
void |
535 |
Spec_binheader(spec) |
536 |
- Spec spec |
537 |
+ rpmSpec spec |
538 |
PREINIT: |
539 |
Package pkg; |
540 |
PPCODE: |
541 |
@@ -2798,7 +2728,7 @@ Spec_binheader(spec) |
542 |
|
543 |
void |
544 |
Spec_srcrpm(spec) |
545 |
- Spec spec |
546 |
+ rpmSpec spec |
547 |
PREINIT: |
548 |
const char *name, *version, *release; |
549 |
PPCODE: |
550 |
@@ -2814,10 +2744,10 @@ Spec_srcrpm(spec) |
551 |
|
552 |
void |
553 |
Spec_binrpm(spec) |
554 |
- Spec spec |
555 |
+ rpmSpec spec |
556 |
PREINIT: |
557 |
Package pkg; |
558 |
- const char * binFormat; |
559 |
+ char * binFormat; |
560 |
char * binRpm; |
561 |
char * path; |
562 |
PPCODE: |
563 |
@@ -2826,18 +2756,17 @@ Spec_binrpm(spec) |
564 |
continue; |
565 |
/* headerCopyTags(h, pkg->header, copyTags); */ |
566 |
binFormat = rpmGetPath("%{_rpmfilename}", NULL); |
567 |
- binRpm = headerSprintf(pkg->header, binFormat, rpmTagTable, |
568 |
- rpmHeaderFormats, NULL); |
569 |
- _free(binFormat); |
570 |
+ binRpm = headerFormat(pkg->header, binFormat, NULL); |
571 |
+ free(binFormat); |
572 |
path = rpmGetPath("%{_rpmdir}/", binRpm, NULL); |
573 |
XPUSHs(sv_2mortal(newSVpv(path, 0))); |
574 |
- _free(path); |
575 |
- _free(binRpm); |
576 |
+ free(path); |
577 |
+ free(binRpm); |
578 |
} |
579 |
|
580 |
void |
581 |
Spec_check(spec, ts = NULL) |
582 |
- Spec spec |
583 |
+ rpmSpec spec |
584 |
PREINIT: |
585 |
int rc; |
586 |
rpmts ts = rpmtsCreate(); |
587 |
@@ -2863,7 +2792,7 @@ Spec_check(spec, ts = NULL) |
588 |
croak("Can't check rpmts"); /* any better idea ? */ |
589 |
|
590 |
ps = rpmtsProblems(ts); |
591 |
- if (ps && ps->numProblems) /* if no problem, return undef */ |
592 |
+ if (ps && rpmpsNumProblems(ps)) /* if no problem, return undef */ |
593 |
XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), bless_rpmps, ps))); |
594 |
ts = rpmtsFree(ts); |
595 |
SPAGAIN; |
596 |
@@ -2871,7 +2800,7 @@ Spec_check(spec, ts = NULL) |
597 |
|
598 |
int |
599 |
Spec_build(spec, sv_buildflags) |
600 |
- Spec spec |
601 |
+ rpmSpec spec |
602 |
SV * sv_buildflags |
603 |
PREINIT: |
604 |
rpmts ts = rpmtsCreate(); |
605 |
@@ -2883,7 +2812,7 @@ Spec_build(spec, sv_buildflags) |
606 |
|
607 |
const char * |
608 |
Spec_specfile(spec) |
609 |
- Spec spec |
610 |
+ rpmSpec spec |
611 |
CODE: |
612 |
RETVAL = spec->specFile; |
613 |
OUTPUT: |
614 |
@@ -2891,7 +2820,7 @@ Spec_specfile(spec) |
615 |
|
616 |
void |
617 |
Spec_sources(spec, is = 0) |
618 |
- Spec spec |
619 |
+ rpmSpec spec |
620 |
int is |
621 |
PREINIT: |
622 |
struct Source *srcPtr; |
623 |
@@ -2904,7 +2833,7 @@ Spec_sources(spec, is = 0) |
624 |
|
625 |
void |
626 |
Spec_sources_url(spec, is = 0) |
627 |
- Spec spec |
628 |
+ rpmSpec spec |
629 |
int is |
630 |
PREINIT: |
631 |
struct Source * srcPtr; |
632 |
@@ -2917,7 +2846,7 @@ Spec_sources_url(spec, is = 0) |
633 |
|
634 |
void |
635 |
Spec_icon(spec) |
636 |
- Spec spec |
637 |
+ rpmSpec spec |
638 |
PREINIT: |
639 |
Package pkg; |
640 |
PPCODE: |
641 |
@@ -2934,7 +2863,7 @@ Spec_icon(spec) |
642 |
|
643 |
void |
644 |
Spec_icon_url(spec) |
645 |
- Spec spec |
646 |
+ rpmSpec spec |
647 |
PREINIT: |
648 |
Package pkg; |
649 |
PPCODE: |
650 |
@@ -2959,7 +2888,7 @@ ps_new(perlclass, ts) |
651 |
rpmps ps; |
652 |
PPCODE: |
653 |
ps = rpmtsProblems(ts); |
654 |
- if (ps && ps->numProblems) /* if no problem, return undef */ |
655 |
+ if (ps && rpmpsNumProblems(ps)) /* if no problem, return undef */ |
656 |
XPUSHs(sv_2mortal(sv_setref_pv(newSVpv("", 0), bless_rpmps, ps))); |
657 |
|
658 |
void |
659 |
@@ -2989,13 +2918,9 @@ ps_isignore(ps, numpb) |
660 |
int numpb |
661 |
PREINIT: |
662 |
rpmProblem p; |
663 |
+ int i; |
664 |
CODE: |
665 |
- if (ps->numProblems < numpb) |
666 |
- RETVAL = 0; /* croak here ? */ |
667 |
- else { |
668 |
- p = ps->probs + numpb; |
669 |
- RETVAL = p->ignoreProblem; |
670 |
- } |
671 |
+ RETVAL = 0; /* ignoreProblem is obsolete and always false */ |
672 |
OUTPUT: |
673 |
RETVAL |
674 |
|
675 |
@@ -3005,12 +2930,17 @@ ps_fmtpb(ps, numpb) |
676 |
int numpb |
677 |
PREINIT: |
678 |
rpmProblem p; |
679 |
+ int i; |
680 |
CODE: |
681 |
- if (ps->numProblems < numpb) |
682 |
- RETVAL = NULL; |
683 |
- else { |
684 |
- p = ps->probs + numpb; |
685 |
+ rpmpsi psi = rpmpsInitIterator(ps); |
686 |
+ for (i = 0; i <= numpb; i++) |
687 |
+ if (rpmpsNextIterator(psi) < 0) break; |
688 |
+ |
689 |
+ p = rpmpsGetProblem(psi); |
690 |
+ if (p) |
691 |
RETVAL = rpmProblemString(p); |
692 |
+ else { |
693 |
+ RETVAL = NULL; |
694 |
} |
695 |
OUTPUT: |
696 |
RETVAL |
697 |
diff -p -up RPM4-0.23/src/typemap.rpm46 RPM4-0.23/src/typemap |
698 |
--- RPM4-0.23/src/typemap.rpm46 2005-12-20 02:33:44.000000000 +0100 |
699 |
+++ RPM4-0.23/src/typemap 2009-01-19 13:06:10.000000000 +0100 |
700 |
@@ -1,6 +1,6 @@ |
701 |
TYPEMAP |
702 |
Header O_OBJECT |
703 |
-Spec O_OBJECT |
704 |
+rpmSpec O_OBJECT |
705 |
rpmts O_OBJECT |
706 |
rpmds O_OBJECT |
707 |
rpmfi O_OBJECT |
708 |
diff -p -up RPM4-0.23/src/RPM4sign.c.pix RPM4-0.23/src/RPM4sign.c |
709 |
--- RPM4-0.23/src/RPM4sign.c.pix 2005-12-20 02:33:44.000000000 +0100 |
710 |
+++ RPM4-0.23/src/RPM4sign.c 2009-01-20 13:07:34.000000000 +0100 |
711 |
@@ -15,10 +15,9 @@ |
712 |
/* Hight level function */ |
713 |
int rpmsign(char *passphrase, const char *rpm) { |
714 |
QVA_t qva = &rpmQVKArgs; |
715 |
- const char * file[2]; |
716 |
+ ARGV_t file = NULL; |
717 |
|
718 |
- file[0] = rpm; |
719 |
- file[1] = NULL; |
720 |
+ argvAdd(&file, rpm); |
721 |
|
722 |
qva->qva_mode = RPMSIGN_ADD_SIGNATURE; |
723 |
qva->passPhrase = passphrase; |
724 |
diff -p -up RPM4-0.23/t/07dep.t.pix RPM4-0.23/t/07dep.t |
725 |
--- RPM4-0.23/t/07dep.t.pix 2007-03-07 22:26:16.000000000 +0100 |
726 |
+++ RPM4-0.23/t/07dep.t 2009-01-20 13:02:13.000000000 +0100 |
727 |
@@ -15,7 +15,7 @@ isa_ok( |
728 |
); |
729 |
|
730 |
SKIP: { |
731 |
- if ($minfo{RPMVERSION} lt '4.4.3') { |
732 |
+ if (1 || $minfo{RPMVERSION} lt '4.4.3') { |
733 |
skip( |
734 |
"These function are supported only for rpm 4.4.3 or highter", |
735 |
4 |