]>
Commit | Line | Data |
---|---|---|
00ba3905 ER |
1 | fix: --rollback PSM_INIT changes added fstates before initialize. |
2 | http://rpm5.org/cvs/chngview?cn=9486 | |
3 | ||
4 | --- rpm-4.4.9/lib/psm.c 2008-02-05 19:50:14.238918269 +0200 | |
5 | +++ rpm-4.4.9-cs9486/lib/psm.c 2008-02-05 19:47:16.644011486 +0200 | |
6 | @@ -1497,10 +1497,6 @@ | |
7 | int xx = 1; | |
8 | ||
9 | assert(fi->h != NULL); | |
10 | - if (fi->fstates != NULL && fc > 0) | |
11 | - xx = headerAddEntry(fi->h, RPMTAG_FILESTATES, RPM_CHAR_TYPE, | |
12 | - fi->fstates, fc); | |
13 | -assert(xx); | |
14 | ||
15 | xx = headerAddEntry(fi->h, RPMTAG_INSTALLTIME, RPM_INT32_TYPE, | |
16 | &installTime, 1); | |
7610c768 | 17 | @@ -1530,6 +1526,28 @@ |
00ba3905 ER |
18 | return 0; |
19 | } | |
20 | ||
21 | + | |
22 | +/** | |
23 | + * Add fi->states to an install header. | |
24 | + * @param ts transaction set | |
25 | + * @param te transaction element | |
26 | + * @param fi file info set | |
27 | + * @return 0 always | |
28 | + */ | |
29 | +static int postPopulateInstallHeader(const rpmts ts, const rpmte te, rpmfi fi) | |
30 | + /*@modifies fi @*/ | |
31 | +{ | |
32 | + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); | |
33 | + int fc = rpmfiFC(fi); | |
34 | + int xx = 1; | |
35 | + | |
36 | + if (fi->fstates != NULL && fc > 0) { | |
7610c768 | 37 | + xx = headerAddEntry(fi->h, RPMTAG_FILESTATES, RPM_CHAR_TYPE, fi->fstates, fc); |
00ba3905 ER |
38 | + } |
39 | + | |
40 | + return 0; | |
41 | +} | |
42 | + | |
43 | static void * rpmpsmThread(void * arg) | |
44 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
45 | /*@modifies arg, rpmGlobalMacroContext, fileSystem, internalState @*/ | |
46 | @@ -2059,6 +2081,9 @@ | |
47 | if (rc) break; | |
48 | } | |
49 | ||
50 | + /* Add fi->fstates to install header. */ | |
51 | + xx = postPopulateInstallHeader(ts, psm->te, fi); | |
52 | + | |
53 | rc = rpmpsmNext(psm, PSM_RPMDB_ADD); | |
54 | if (rc) break; | |
55 | ||
56 | --- rpm-4.4.9/lib/transaction.c 2007-05-17 01:47:00.000000000 +0300 | |
57 | +++ rpm-4.4.9-cs9486/lib/transaction.c 2008-02-05 19:39:52.565758407 +0200 | |
58 | @@ -895,9 +895,6 @@ | |
59 | ||
60 | /*@-dependenttrans@*/ | |
61 | if (netsharedPaths) freeSplitString(netsharedPaths); | |
62 | -#ifdef DYING /* XXX freeFi will deal with this later. */ | |
63 | - fi->flangs = _free(fi->flangs); | |
64 | -#endif | |
65 | if (languages) freeSplitString((char **)languages); | |
66 | /*@=dependenttrans@*/ | |
67 | } |