]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-5.4.10-files-listed-twice-terminates-build.patch
Release: 29
[packages/rpm.git] / rpm-5.4.10-files-listed-twice-terminates-build.patch
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
This page took 0.035776 seconds and 3 git commands to generate.