]> git.pld-linux.org Git - packages/rpm.git/blame - rpm-check_files.patch
- workaround over static markers for the .. operator
[packages/rpm.git] / rpm-check_files.patch
CommitLineData
e89f8c57 1--- rpm-4.0.2/build/files.c Sun May 26 13:40:43 2002
2+++ rpm-4.0.2-filon/build/files.c Sun May 26 13:39:44 2002
3@@ -1987,7 +1987,7 @@
4 */
5 static int generateDepends(Spec spec, Package pkg,
6 struct cpioFileMapping *cpioList, int cpioCount,
7- int multiLib)
8+ int multiLib, StringBuf fileList, int *fileListLen)
9 {
10 StringBuf writeBuf;
11 int writeBytes;
12@@ -2013,7 +2013,9 @@
13 }
14
15 writeBytes += strlen(cpioList->fsPath) + 1;
16+ *fileListLen += strlen(cpioList->fsPath) + 1;
17 appendLineStringBuf(writeBuf, cpioList->fsPath);
18+ appendLineStringBuf(fileList, cpioList->fsPath);
19 }
20
21 for (dm = depMsgs; dm->msg != NULL; dm++) {
08e31d78 22@@ -2190,10 +2192,54 @@
e89f8c57 23 FREE(versions);
24 }
25
26+int checkFiles(StringBuf fileList, int fileListLen)
27+{
28+ StringBuf readBuf = NULL;
08e31d78 29+ char* myargv[3] = {NULL, NULL, NULL};
e89f8c57 30+ int rc = 0;
31+ char *buf;
32+
33+ myargv[0] = rpmExpand("%{__check_files}", NULL);
34+ if (!(myargv[0] && *myargv[0] != '%')) {
35+ rc = -1;
36+ goto exit;
37+ }
38+ myargv[1] = rpmExpand("%{buildroot}", NULL);
39+ if (!(myargv[1] && *myargv[1] != '%')) {
40+ rc = -1;
41+ goto exit;
42+ }
e89f8c57 43+
44+ rpmMessage(RPMMESS_NORMAL, _("Searching for omited files: (using %s)...\n"),
45+ myargv[0]);
46+
08e31d78 47+ readBuf = getOutputFrom(NULL, myargv, getStringBuf(fileList), fileListLen, 0);
e89f8c57 48+
49+ if (readBuf) {
50+ buf = getStringBuf(readBuf);
8d28f612 51+ if ((*buf != '\0') && (*buf != '\n'))
e89f8c57 52+ rpmMessage(RPMMESS_WARNING, \
53+ _("found installed files not placed in any package:\n---\n%s---\n"),
08e31d78 54+ buf);
e89f8c57 55+ }
56+
57+exit:
58+
59+ freeStringBuf(readBuf);
60+ FREE(myargv[0]);
61+ FREE(myargv[1]);
62+
63+ return rc;
64+}
65+
66 int processBinaryFiles(Spec spec, int installSpecialDoc, int test)
67 {
68 Package pkg;
69 int res = 0;
70+ StringBuf fileList;
3a6a6707 71+ int fileListLen = 0;
e89f8c57 72+
73+ fileList = newStringBuf();
74
75 for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
76 const char *n, *v, *r;
3dea2558 77@@ -2213,13 +2260,23 @@
e89f8c57 78 * XXX existence (rather than value) that will need to change as well.
79 */
80 if (headerGetEntry(pkg->header, RPMTAG_MULTILIBS, NULL, NULL, NULL)) {
81- generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 1);
82- generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 2);
83+ generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 1, fileList, &fileListLen);
84+ generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 2, fileList, &fileListLen);
85 } else
86- generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 0);
87+ generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount, 0, fileList, &fileListLen);
88 printDeps(pkg->header);
89
90 }
91
08e31d78 92+ /* Now we have in fileList list of files from all packages.
e89f8c57 93+ * We pass it to a script which do the work of finding missing
94+ * and duplicated files.
95+ */
96+
3dea2558 97+ if (res == 0)
98+ checkFiles(fileList, fileListLen);
e89f8c57 99+
100+ freeStringBuf(fileList);
101+
102 return res;
103 }
104--- rpm-4.0.2/platform.in Sun May 26 13:40:43 2002
105+++ rpm-4.0.2-filon/platform.in Sun May 26 12:11:26 2002
106@@ -38,6 +38,10 @@
107 # Expanded at end of %install
108 #
109
110+# Gets file list on input and buildroot as first parameter
111+# and returns list of files not found in any package
112+%__check_files @prefix@/lib/rpm/check-files
113+
114 %__arch_install_post @ARCH_INSTALL_POST@
115
116 %__os_install_post \
This page took 0.060172 seconds and 4 git commands to generate.