]>
Commit | Line | Data |
---|---|---|
70f8787d JR |
1 | --- rpm-5.4.10/build/files.c.twice_terminate~ 2012-07-10 20:18:14.613329633 +0200 |
2 | +++ rpm-5.4.10/build/files.c 2012-07-10 20:18:14.677328833 +0200 | |
3 | @@ -1329,7 +1329,7 @@ static rpmuint32_t getDigestAlgo(Header | |
4 | * @param h | |
5 | * @param isSrc | |
6 | */ | |
7 | -static void genCpioListAndHeader(/*@partial@*/ FileList fl, | |
8 | +static rpmRC genCpioListAndHeader(/*@partial@*/ FileList fl, | |
9 | rpmfi * fip, Header h, int isSrc) | |
10 | /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/ | |
11 | /*@modifies h, *fip, fl->processingFailed, fl->fileList, | |
12 | @@ -1349,6 +1349,7 @@ static void genCpioListAndHeader(/*@part | |
13 | rpmuint32_t dalgo = getDigestAlgo(h, isSrc); | |
14 | char buf[BUFSIZ]; | |
15 | int i, xx; | |
16 | + rpmRC rc = RPMRC_OK; | |
17 | ||
18 | memset(buf, 0, sizeof(buf)); /* XXX valgrind on rhel6 beta pickier */ | |
19 | ||
20 | @@ -1377,9 +1378,14 @@ memset(buf, 0, sizeof(buf)); /* XXX valg | |
21 | /* file flags */ | |
22 | flp[1].flags |= flp->flags; | |
23 | ||
24 | - if (!(flp[1].flags & RPMFILE_EXCLUDE)) | |
25 | - rpmlog(RPMLOG_WARNING, _("File listed twice: %s\n"), | |
26 | + if (!(flp[1].flags & RPMFILE_EXCLUDE)) { | |
27 | + int terminate = rpmExpandNumeric("%{?_files_listed_twice_terminate_build}"); | |
28 | + | |
29 | + rpmlog(terminate ? RPMLOG_ERR : RPMLOG_WARNING, _("File listed twice: %s\n"), | |
30 | flp->fileURL); | |
31 | + if (terminate) | |
32 | + rc = RPMRC_FAIL; | |
33 | + } | |
34 | ||
35 | /* file mode */ | |
36 | if (S_ISDIR(flp->fl_mode)) { | |
37 | @@ -1792,6 +1798,8 @@ if (_rpmbuildFlags & 4) { | |
38 | fi = rpmfiFree(fi); | |
39 | /*@=compdef@*/ | |
40 | } | |
41 | + | |
42 | + return rc; | |
43 | } | |
44 | ||
45 | /** | |
46 | @@ -2514,7 +2522,8 @@ static rpmRC processPackageFiles(Spec sp | |
47 | "PartialHardlinkSets", "4.0.4-1"); | |
48 | ||
49 | /* XXX should tags be added if filelist is empty? */ | |
50 | - genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0); | |
51 | + if (genCpioListAndHeader(&fl, &pkg->fi, pkg->header, 0) != RPMRC_OK) | |
52 | + fl.processingFailed = 1; | |
53 | ||
54 | if (spec->timeCheck) | |
55 | timeCheck(spec->timeCheck, pkg->header); | |
56 | @@ -2828,7 +2837,7 @@ int processSourceFiles(Spec spec) | |
57 | ||
58 | /* XXX should tags be added if filelist is empty? */ | |
59 | spec->fi = NULL; | |
60 | - genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1); | |
61 | + rc = genCpioListAndHeader(&fl, &spec->fi, spec->sourceHeader, 1); | |
62 | ||
63 | exit: | |
64 | *sfp = rpmiobFree(*sfp); | |
65 | --- rpm-5.4.10/macros/mandriva.in.twice_terminate~ 2012-07-10 20:18:14.000000000 +0200 | |
66 | +++ rpm-5.4.10/macros/mandriva.in 2012-07-10 20:18:32.060111516 +0200 | |
67 | @@ -128,6 +128,7 @@ end\ | |
68 | ||
69 | %_duplicate_files_terminate_build 1 | |
70 | %_unpackaged_subdirs_terminate_build 0 | |
71 | +%_files_listed_twice_terminate_build 1 | |
72 | ||
73 | %_build_pkgcheck_set /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc | |
74 | %_build_pkgcheck_srpm /usr/bin/rpmlint -T -f %{_sourcedir}/%{name}.rpmlintrc |