]>
Commit | Line | Data |
---|---|---|
a3809792 JR |
1 | 4.4.9 -> 4.5: |
2 | + - jbj: add a relation to to force install-before-erase. | |
3 | + - jbj: display dependency loops as an error for now. | |
4 | - glen: do not skip %clean from spec file | |
5 | - robert: install rpmdeps and debugedit to pkglibdir as on HEAD | |
6 | - jbj: fix: python ts.hdrFromFdno(fdno) segfault. | |
7 | --- rpm-4.5/lib/depends.c~ 2008/10/26 18:29:50 1.327.2.10 | |
8 | +++ rpm-4.5/lib/depends.c 2008-10-27 14:42:52.984295775 +0200 | |
9 | @@ -1936,7 +1936,7 @@ | |
10 | return 0; | |
11 | ||
12 | /* Avoid certain dependency relations. */ | |
13 | - if (teType == TR_ADDED && ignoreDep(ts, p, q)) | |
14 | + if (ignoreDep(ts, p, q)) | |
15 | return 0; | |
16 | ||
17 | /* Avoid redundant relations. */ | |
18 | @@ -2191,6 +2191,25 @@ | |
19 | } | |
20 | } | |
21 | ||
22 | + | |
23 | + /* Ensure that erasures follow installs during upgrades. */ | |
24 | + if (rpmteType(p) == TR_REMOVED && p->flink.Pkgid && p->flink.Pkgid[0]) { | |
25 | + | |
26 | + qi = rpmtsiInit(ts); | |
27 | + while ((q = rpmtsiNext(qi, TR_ADDED)) != NULL) { | |
28 | + if (strcmp(q->pkgid, p->flink.Pkgid[0])) | |
29 | + continue; | |
30 | + requires = rpmdsFromPRCO(q->PRCO, RPMTAG_NAME); | |
31 | + if (requires != NULL) { | |
32 | + /* XXX disable erased arrow reversal. */ | |
33 | + p->type = TR_ADDED; | |
34 | + (void) addRelation(ts, p, selected, requires); | |
35 | + p->type = TR_REMOVED; | |
36 | + } | |
37 | + } | |
38 | + qi = rpmtsiFree(qi); | |
39 | + } | |
40 | + | |
41 | if (_autobits != 0xffffffff) | |
42 | { | |
43 | ||
44 | @@ -2401,7 +2420,7 @@ | |
45 | const char * dp; | |
46 | char buf[4096]; | |
47 | int msglvl = (anaconda || (rpmtsDFlags(ts) & RPMDEPS_FLAG_DEPLOOPS)) | |
48 | - ? RPMMESS_WARNING : RPMMESS_DEBUG; | |
49 | + ? RPMMESS_WARNING : RPMMESS_ERROR; | |
50 | ; | |
51 | ||
52 | /* Unchain predecessor loop. */ |