mirror of
https://abf.rosa.ru/djam/rpm.git
synced 2025-02-23 18:33:04 +00:00
75 lines
2.6 KiB
Diff
75 lines
2.6 KiB
Diff
![]() |
--- rpm-5.4.4/build/files.c.twice_terminate~ 2012-01-23 10:20:48.711612232 +0100
|
||
|
+++ rpm-5.4.4/build/files.c 2012-01-23 10:20:48.716612237 +0100
|
||
|
@@ -1329,7 +1329,7 @@ static rpmuint32_t getDigestAlgo(Header
|
||
|
* @param h
|
||
|
* @param isSrc
|
||
|
*/
|
||
|
-static void genCpioListAndHeader(/*@partial@*/ FileList fl,
|
||
|
+static rpmRC genCpioListAndHeader(/*@partial@*/ FileList fl,
|
||
|
rpmfi * fip, Header h, int isSrc)
|
||
|
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
|
||
|
/*@modifies h, *fip, fl->processingFailed, fl->fileList,
|
||
|
@@ -1349,6 +1349,7 @@ static void genCpioListAndHeader(/*@part
|
||
|
rpmuint32_t dalgo = getDigestAlgo(h, isSrc);
|
||
|
char buf[BUFSIZ];
|
||
|
int i, xx;
|
||
|
+ rpmRC rc = RPMRC_OK;
|
||
|
|
||
|
memset(buf, 0, sizeof(buf)); /* XXX valgrind on rhel6 beta pickier */
|
||
|
|
||
|
@@ -1377,9 +1378,14 @@ memset(buf, 0, sizeof(buf)); /* XXX valg
|
||
|
/* file flags */
|
||
|
flp[1].flags |= flp->flags;
|
||
|
|
||
|
- if (!(flp[1].flags & RPMFILE_EXCLUDE))
|
||
|
- rpmlog(RPMLOG_WARNING, _("File listed twice: %s\n"),
|
||
|
+ if (!(flp[1].flags & RPMFILE_EXCLUDE)) {
|
||
|
+ int terminate = rpmExpandNumeric("%{?_files_listed_twice_terminate_build}");
|
||
|
+
|
||
|
+ rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING, _("File listed twice: %s\n"),
|
||
|
flp->fileURL);
|
||
|
+ if (terminate)
|
||
|
+ rc = RPMRC_FAIL;
|
||
|
+ }
|
||
|
|
||
|
/* file mode */
|
||
|
if (S_ISDIR(flp->fl_mode)) {
|
||
|
@@ -1784,6 +1790,8 @@ if (_rpmbuildFlags & 4) {
|
||
|
fi = rpmfiFree(fi);
|
||
|
/*@=compdef@*/
|
||
|
}
|
||
|
+
|
||
|
+ return rc;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
@@ -2506,7 +2514,8 @@ static rpmRC processPackageFiles(Spec sp
|
||
|
"PartialHardlinkSets", "4.0.4-1");
|
||
|
|
||
|
/* XXX should tags be added if filelist is empty? */
|
||
|
- genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0);
|
||
|
+ if (genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0) != RPMRC_OK)
|
||
|
+ fl.processingFailed = 1;
|
||
|
|
||
|
if (spec->timeCheck)
|
||
|
timeCheck(spec->timeCheck, pkg->header);
|
||
|
@@ -2820,7 +2829,7 @@ int processSourceFiles(Spec spec)
|
||
|
|
||
|
/* XXX should tags be added if filelist is empty? */
|
||
|
spec->fi = NULL;
|
||
|
- genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1);
|
||
|
+ rc = genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1);
|
||
|
|
||
|
exit:
|
||
|
*sfp = rpmiobFree(*sfp);
|
||
|
--- rpm-5.4.4/macros/mandriva.in.twice_terminate~ 2012-01-23 10:20:48.000000000 +0100
|
||
|
+++ rpm-5.4.4/macros/mandriva.in 2012-01-23 10:21:35.342670233 +0100
|
||
|
@@ -125,6 +125,7 @@ end\
|
||
|
|
||
|
%_duplicate_files_terminate_build 1
|
||
|
%_unpackaged_subdirs_terminate_build 0
|
||
|
+%_files_listed_twice_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
|