mirror of
https://abf.rosa.ru/djam/rpm.git
synced 2025-02-24 02:43:06 +00:00
65 lines
2.5 KiB
Diff
65 lines
2.5 KiB
Diff
--- rpm-5.4.4/build/files.c.dups_terminate~ 2011-12-05 20:29:26.967255130 +0100
|
|
+++ rpm-5.4.4/build/files.c 2011-12-05 20:34:20.850092893 +0100
|
|
@@ -2909,7 +2909,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 @*/
|
|
{
|
|
@@ -2947,7 +2948,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));
|
|
|
|
@@ -2964,7 +2965,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 @*/
|
|
@@ -2989,7 +2991,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);
|
|
}
|
|
@@ -3172,9 +3174,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.4/macros/mandriva.in.dups_terminate~ 2011-12-05 20:29:36.660283699 +0100
|
|
+++ rpm-5.4.4/macros/mandriva.in 2011-12-05 20:29:43.800304703 +0100
|
|
@@ -119,6 +119,7 @@ end\
|
|
# TODO: fix check script and implement support for using
|
|
#%_multiarch_required_terminate_build 1
|
|
|
|
+%_duplicate_files_terminate_build 1
|
|
%_enable_debug_packages 1
|
|
|
|
|