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:
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 @*/
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);
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));
22 @@ -2972,7 +2973,8 @@ static int fiIntersect(/*@null@*/ rpmfi
23 * @param spec spec file control structure
24 * @return number of duplicate files
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
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);
41 @@ -3181,9 +3183,13 @@ rpmRC processBinaryFiles(Spec spec, int
44 if (res == RPMRC_OK) {
45 + int _duplicate_files_terminate_build =
46 + rpmExpandNumeric("%{?_duplicate_files_terminate_build}");
47 if (checkUnpackagedFiles(spec) > 0)
49 - (void) checkDuplicateFiles(spec, buildrootL);
50 + if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 &&
51 + _duplicate_files_terminate_build)
53 (void) checkUnpackagedSubdirs(spec, buildrootL);
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
62 +%_duplicate_files_terminate_build 1
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