]>
Commit | Line | Data |
---|---|---|
ae5dedac | 1 | --- rpm-4.0.2/lib/rpmlib.h~ Sun May 26 07:47:04 2002 |
2 | +++ rpm-4.0.2/lib/rpmlib.h Sun May 26 07:55:51 2002 | |
3 | @@ -320,6 +320,7 @@ | |
4 | RPMFILE_GHOST = (1 << 6), /*!< from %%ghost */ | |
5 | RPMFILE_LICENSE = (1 << 7), /*!< from %%license */ | |
6 | - RPMFILE_README = (1 << 8) /*!< from %%readme */ | |
7 | + RPMFILE_README = (1 << 8), /*!< from %%readme */ | |
8 | + RPMFILE_EXCLUDE = (1 << 9) /*!< from %%exclude */ | |
9 | } rpmfileAttrs; | |
10 | #define RPMFILE_MULTILIB_SHIFT 9 | |
11 | #define RPMFILE_MULTILIB(N) ((N) << RPMFILE_MULTILIB_SHIFT) | |
12 | --- rpm-4.0.2/build/files.c~ Sun May 26 07:47:04 2002 | |
13 | +++ rpm-4.0.2/build/files.c Sun May 26 08:19:18 2002 | |
14 | @@ -685,6 +685,7 @@ | |
15 | { "%dir", 0 }, /* XXX why not RPMFILE_DIR? */ | |
16 | { "%doc", RPMFILE_DOC }, | |
17 | { "%ghost", RPMFILE_GHOST }, | |
18 | + { "%exclude", RPMFILE_EXCLUDE }, | |
19 | { "%readme", RPMFILE_README }, | |
20 | { "%license", RPMFILE_LICENSE }, | |
21 | { "%multilib", 0 }, | |
e4a6d098 | 22 | @@ -986,12 +987,20 @@ |
ae5dedac | 23 | clp = *cpioList = xmalloc(sizeof(**cpioList) * fl->fileListRecsUsed); |
24 | ||
25 | for (flp = fl->fileList, count = fl->fileListRecsUsed; count > 0; flp++, count--) { | |
26 | - if ((count > 1) && !strcmp(flp->fileURL, flp[1].fileURL)) { | |
27 | - rpmError(RPMERR_BADSPEC, _("File listed twice: %s\n"), | |
28 | - flp->fileURL); | |
29 | - fl->processingFailed = 1; | |
30 | - } | |
e4a6d098 | 31 | + if ((count > 1) && !strcmp(flp->fileURL, flp[1].fileURL)) { |
32 | + if (!((flp->flags | flp[1].flags) & RPMFILE_EXCLUDE)) { | |
ae5dedac | 33 | + rpmError(RPMERR_BADSPEC, _("File listed twice: %s\n"), |
34 | + flp->fileURL); | |
35 | + fl->processingFailed = 1; | |
e4a6d098 | 36 | + } else { |
37 | + flp->flags |= RPMFILE_EXCLUDE; | |
38 | + flp[1].flags |= RPMFILE_EXCLUDE; | |
ae5dedac | 39 | + } |
e4a6d098 | 40 | + } |
ae5dedac | 41 | |
42 | + /* Skip files that were marked with %exclude. */ | |
43 | + if (flp->flags & RPMFILE_EXCLUDE) continue; | |
44 | + | |
45 | if (flp->flags & RPMFILE_MULTILIB_MASK) | |
46 | multiLibMask |= | |
47 | (1 << ((flp->flags & RPMFILE_MULTILIB_MASK)) |