]>
Commit | Line | Data |
---|---|---|
70f8787d JR |
1 | --- rpm-5.4.10/build/files.c.dups_terminate~ 2012-07-10 20:09:01.125249185 +0200 |
2 | +++ rpm-5.4.10/build/files.c 2012-07-10 20:09:01.135249061 +0200 | |
3 | @@ -2917,7 +2917,8 @@ 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, size_t buildrootL) | |
8 | +static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, | |
9 | + size_t buildrootL, int _duplicate_files_terminate_build) | |
10 | /*@globals internalState @*/ | |
11 | /*@modifies fi1, fi2, internalState @*/ | |
12 | { | |
13 | @@ -2955,7 +2956,7 @@ static int fiIntersect(/*@null@*/ rpmfi | |
14 | he->tag = RPMTAG_NVRA; | |
15 | N2 = (headerGet(fi2->h, he, 0) ? he->p.str : NULL); | |
16 | ||
17 | - rpmlog(RPMLOG_WARNING, | |
18 | + rpmlog(_duplicate_files_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING, | |
19 | _("File(s) packaged into both %s and %s:\n%s"), | |
20 | N1, N2, rpmiobStr(dups)); | |
21 | ||
22 | @@ -2972,7 +2973,8 @@ static int fiIntersect(/*@null@*/ rpmfi | |
23 | * @param spec spec file control structure | |
24 | * @return number of duplicate files | |
25 | */ | |
26 | -static int checkDuplicateFiles(Spec spec, size_t buildrootL) | |
27 | +static int checkDuplicateFiles(Spec spec, size_t buildrootL, | |
28 | + int _duplicate_files_terminate_build) | |
29 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
30 | /*@modifies *spec->packages, | |
31 | rpmGlobalMacroContext, fileSystem, internalState @*/ | |
32 | @@ -2997,7 +2999,7 @@ static int checkDuplicateFiles(Spec spec | |
33 | #endif | |
34 | if (fi2 == NULL) continue; | |
35 | (void) rpmfiSetHeader(fi2, pkg2->header); | |
36 | - n += fiIntersect(fi1, fi2, buildrootL); | |
37 | + n += fiIntersect(fi1, fi2, buildrootL, _duplicate_files_terminate_build); | |
38 | (void) rpmfiSetHeader(fi2, NULL); | |
39 | fi2 = rpmfiFree(fi2); | |
40 | } | |
41 | @@ -3181,9 +3183,13 @@ rpmRC processBinaryFiles(Spec spec, int | |
42 | } | |
43 | ||
44 | if (res == RPMRC_OK) { | |
45 | + int _duplicate_files_terminate_build = | |
46 | + rpmExpandNumeric("%{?_duplicate_files_terminate_build}"); | |
47 | if (checkUnpackagedFiles(spec) > 0) | |
48 | res = RPMRC_FAIL; | |
49 | - (void) checkDuplicateFiles(spec, buildrootL); | |
50 | + if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 && | |
51 | + _duplicate_files_terminate_build) | |
52 | + res = RPMRC_FAIL; | |
53 | (void) checkUnpackagedSubdirs(spec, buildrootL); | |
54 | } | |
55 | ||
56 | --- rpm-5.4.10/macros/mandriva.in.dups_terminate~ 2012-05-19 22:35:44.000000000 +0200 | |
57 | +++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:13:41.582742985 +0200 | |
58 | @@ -126,6 +126,9 @@ end\ | |
59 | # use XZ to compress binary packages: | |
60 | %_binary_payload w5.xzdio | |
61 | ||
62 | +%_duplicate_files_terminate_build 1 | |
63 | + | |
64 | + | |
65 | %_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc | |
66 | %_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc | |
67 | %_nonzero_exit_pkgcheck_terminate_build 1 |