rpm/rpm-5.4.10-duplicate_files_terminate_build.patch

68 lines
2.7 KiB
Diff
Raw Normal View History

--- rpm-5.4.10/build/files.c.dups_terminate~ 2012-07-10 20:09:01.125249185 +0200
+++ rpm-5.4.10/build/files.c 2012-07-10 20:09:01.135249061 +0200
2012-08-01 14:59:23 +04:00
@@ -2917,7 +2917,8 @@ exit:
/* auxiliary function for checkDuplicateFiles() */
/* XXX need to pass Header because fi->h is NULL */
-static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2, size_t buildrootL)
+static int fiIntersect(/*@null@*/ rpmfi fi1, /*@null@*/ rpmfi fi2,
+ size_t buildrootL, int _duplicate_files_terminate_build)
/*@globals internalState @*/
/*@modifies fi1, fi2, internalState @*/
{
@@ -2955,7 +2956,7 @@ static int fiIntersect(/*@null@*/ rpmfi
he->tag = RPMTAG_NVRA;
N2 = (headerGet(fi2->h, he, 0) ? he->p.str : NULL);
- rpmlog(RPMLOG_WARNING,
+ rpmlog(_duplicate_files_terminate_build ? RPMLOG_ERR : RPMLOG_WARNING,
_("File(s) packaged into both %s and %s:\n%s"),
N1, N2, rpmiobStr(dups));
@@ -2972,7 +2973,8 @@ static int fiIntersect(/*@null@*/ rpmfi
* @param spec spec file control structure
* @return number of duplicate files
*/
-static int checkDuplicateFiles(Spec spec, size_t buildrootL)
+static int checkDuplicateFiles(Spec spec, size_t buildrootL,
+ int _duplicate_files_terminate_build)
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies *spec->packages,
rpmGlobalMacroContext, fileSystem, internalState @*/
@@ -2997,7 +2999,7 @@ static int checkDuplicateFiles(Spec spec
#endif
if (fi2 == NULL) continue;
(void) rpmfiSetHeader(fi2, pkg2->header);
- n += fiIntersect(fi1, fi2, buildrootL);
+ n += fiIntersect(fi1, fi2, buildrootL, _duplicate_files_terminate_build);
(void) rpmfiSetHeader(fi2, NULL);
fi2 = rpmfiFree(fi2);
}
@@ -3181,9 +3183,13 @@ rpmRC processBinaryFiles(Spec spec, int
}
if (res == RPMRC_OK) {
+ int _duplicate_files_terminate_build =
+ rpmExpandNumeric("%{?_duplicate_files_terminate_build}");
if (checkUnpackagedFiles(spec) > 0)
res = RPMRC_FAIL;
- (void) checkDuplicateFiles(spec, buildrootL);
+ if (checkDuplicateFiles(spec, buildrootL, _duplicate_files_terminate_build) > 0 &&
+ _duplicate_files_terminate_build)
+ res = RPMRC_FAIL;
(void) checkUnpackagedSubdirs(spec, buildrootL);
}
--- rpm-5.4.10/macros/mandriva.in.dups_terminate~ 2012-05-19 22:35:44.000000000 +0200
+++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:13:41.582742985 +0200
@@ -126,6 +126,9 @@ end\
2012-08-01 14:59:23 +04:00
# use XZ to compress binary packages:
%_binary_payload w5.xzdio
+%_duplicate_files_terminate_build 1
+
+
%_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
%_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc
%_nonzero_exit_pkgcheck_terminate_build 1