]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch
- rel 37
[packages/rpm.git] / rpm-5.4.9-strip-buildroot-away-from-duplicate-files-list.patch
CommitLineData
70f8787d
JR
1--- rpm-5.4.9/build/files.c.buildroot_dups~ 2012-04-15 17:04:14.000000000 +0200
2+++ rpm-5.4.9/build/files.c 2012-05-15 02:11:03.734983519 +0200
3@@ -2917,7 +2917,7 @@ exit:
4
5 /* auxiliary function for checkDuplicateFiles() */
6 /* XXX need to pass Header because fi->h is NULL */
7-static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2)
8+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL)
9 /*@globals internalState @*/
10 /*@modifies fi1, fi2, internalState @*/
11 {
12@@ -2941,7 +2941,7 @@ static int fiIntersect(/*@null@*/ rpmfi
13 if (!dups)
14 dups = rpmiobNew(0);
15 dups = rpmiobAppend(dups, "\t", 0);
16- dups = rpmiobAppend(dups, fn1, 1);
17+ dups = rpmiobAppend(dups, fn1+buildrootL, 1);
18 n++;
19 }
20 }
21@@ -2972,7 +2972,7 @@ static int fiIntersect(/*@null@*/ rpmfi
22 * @param spec spec file control structure
23 * @return number of duplicate files
24 */
25-static int checkDuplicateFiles(Spec spec)
26+static int checkDuplicateFiles(Spec spec, size_t buildrootL)
27 /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
28 /*@modifies *spec->packages,
29 rpmGlobalMacroContext, fileSystem, internalState @*/
30@@ -2997,7 +2997,7 @@ static int checkDuplicateFiles(Spec spec
31 #endif
32 if (fi2 == NULL) continue;
33 (void) rpmfiSetHeader(fi2, pkg2->header);
34- n += fiIntersect(fi1, fi2);
35+ n += fiIntersect(fi1, fi2, buildrootL);
36 (void) rpmfiSetHeader(fi2, NULL);
37 fi2 = rpmfiFree(fi2);
38 }
39@@ -3023,7 +3023,7 @@ static inline int packagedDir(Package pk
40 * /A/B/C/D
41 * Now directories "/A/B" and "/A/B/C" should also be packaged.
42 */
43-static int pkgUnpackagedSubdirs(Package pkg)
44+static int pkgUnpackagedSubdirs(Package pkg, size_t buildrootL)
45 /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
46 /*@modifies pkg->header,
47 rpmGlobalMacroContext, fileSystem, internalState @*/
48@@ -3096,7 +3096,7 @@ static int pkgUnpackagedSubdirs(Package
49
50 for (i = 0; i < n; i++) {
51 list = rpmiobAppend(list, "\t", 0);
52- list = rpmiobAppend(list, unpackaged[i], 1);
53+ list = rpmiobAppend(list, unpackaged[i]+buildrootL, 1);
54 unpackaged[i] = _free(unpackaged[i]);
55 }
56 unpackaged = _free(unpackaged);
57@@ -3117,7 +3117,7 @@ static int pkgUnpackagedSubdirs(Package
58 * @param spec spec file control structure
59 * @return number of unpackaged subdirectories
60 */
61-static int checkUnpackagedSubdirs(Spec spec)
62+static int checkUnpackagedSubdirs(Spec spec, size_t buildrootL)
63 /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
64 /*@modifies *spec->packages,
65 rpmGlobalMacroContext, fileSystem, internalState @*/
66@@ -3126,7 +3126,7 @@ static int checkUnpackagedSubdirs(Spec s
67 Package pkg;
68
69 for (pkg = spec->packages; pkg; pkg = pkg->next)
70- n += pkgUnpackagedSubdirs(pkg);
71+ n += pkgUnpackagedSubdirs(pkg, buildrootL);
72 return n;
73 }
74
75@@ -3137,6 +3137,11 @@ rpmRC processBinaryFiles(Spec spec, int
76 Package pkg;
77 rpmRC res = RPMRC_OK;
78
79+ char *buildroot = rpmExpand("%{?buildroot}", NULL);
80+ size_t buildrootL = strlen(buildroot);
81+
82+ buildroot = _free(buildroot);
83+
84 for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
85 int rc;
86
87@@ -3178,8 +3183,8 @@ rpmRC processBinaryFiles(Spec spec, int
88 if (res == RPMRC_OK) {
89 if (checkUnpackagedFiles(spec) > 0)
90 res = RPMRC_FAIL;
91- (void) checkDuplicateFiles(spec);
92- (void) checkUnpackagedSubdirs(spec);
93+ (void) checkDuplicateFiles(spec, buildrootL);
94+ (void) checkUnpackagedSubdirs(spec, buildrootL);
95 }
96
97 return res;
This page took 0.045195 seconds and 4 git commands to generate.