8 #define _RPMFC_INTERNAL
16 #define RPMDEP_RPMFC 1
17 #define RPMDEP_RPMDSCPUINFO 2
18 #define RPMDEP_RPMDSRPMLIB 3
19 #define RPMDEP_RPMDSSYSINFO 4
20 #define RPMDEP_RPMDSGETCONF 5
21 #define RPMDEP_RPMDSELF 6
22 #define RPMDEP_RPMDSLDCONFIG 7
23 #define RPMDEP_RPMDSUNAME 8
24 #define RPMDEP_RPMDSPIPE 9
26 #define RPMDEP_RPMDSPERL 10
27 #define RPMDEP_RPMDSPYTHON 11
28 #define RPMDEP_RPMDSLIBTOOL 12
29 #define RPMDEP_RPMDSPKGCONFIG 13
31 #define RPMDEP_RPMDSPUBKEY 14
32 #define RPMDEP_RPMDSARCH 15
33 #define RPMDEP_RPMDSFILE 16
34 #define RPMDEP_RPMDSSONAME 17
35 #define RPMDEP_RPMDSPACKAGE 18
37 #define RPMDEP_RPMDSJAVA 20
38 #define RPMDEP_RPMDSRUBY 21
39 #define RPMDEP_RPMDSPHP 22
41 #define RPMDEP_RPMDSDPKGRPM 32
42 #define RPMDEP_RPMDSRPMDPKG 33
56 #define _PERL_PROVIDES "/usr/bin/find /usr/lib/perl5 | /usr/lib/rpm/perl.prov"
60 #define _PERL_REQUIRES "rpm -qa --fileclass | grep 'perl script' | sed -e 's/\t.*$//' | /usr/lib/rpm/perl.req"
64 #define _JAVA_PROVIDES "rpm -qal | egrep '\\.(jar|class)$' | /usr/lib/rpm/javadeps.sh -P"
68 #define _JAVA_REQUIRES "rpm -qal | egrep '\\.(jar|class)$' | /usr/lib/rpm/javadeps.sh -R"
72 #define _LIBTOOL_PROVIDES "/usr/bin/find /usr/lib -name '*.la' | /usr/lib/rpm/libtooldeps.sh -P /"
76 #define _LIBTOOL_REQUIRES "/bin/rpm -qal | grep '\\.la$' | /usr/lib/rpm/libtooldeps.sh -R /"
80 #define _PKGCONFIG_PROVIDES "/usr/bin/find /usr/lib -name '*.pc' | /usr/lib/rpm/pkgconfigdeps.sh -P"
83 #define _PKGCONFIG_REQUIRES "/bin/rpm -qal | grep '\\.pc$' | /usr/lib/rpm/pkgconfigdeps.sh -R"
86 #define _DPKG_PROVIDES "egrep '^(Package|Status|Version|Provides):' /var/lib/dpkg/status | sed -e '\n\
91 s|^Package: \\([^\\n]*\\)\\n[^\\n]*\\nVersion: \\(.*\\)$|\\1 = \\2|\n\
96 }' | sed -f /usr/lib/rpm/dpkg2fc.sed | sort -u | tee /tmp/dpkg"
99 #define _DPKG_REQUIRES "egrep '^(Package|Status|Pre-Depends|Depends):' /var/lib/dpkg/status | sed -e '\n\
103 s|^Package: [^\\n]*\\n.*$||\n\
107 s|(\\([^)]*\\))|\\1|g\n\
112 /^Pre-Depends: / {\n\
113 s|^Pre-Depends: ||\n\
114 s|(\\([^)]*\\))|\\1|g\n\
118 }' | sed -f /usr/lib/rpm/dpkg2fc.sed | sed -e 's/ |.*$//' | sort -u | tee /tmp/dpkg"
121 #define _RPMDB_PACKAGE_PROVIDES "/bin/rpm -qa --qf '%{name} = %|epoch?{%{epoch}:}|%{version}-%{release}\n' | sort -u"
124 #define _RPMDB_PACKAGE_REQUIRES "/bin/rpm -qa --requires | sort -u | sed -e '/^\\//d' -e '/.*\\.so.*/d' -e '/^%/d' -e '/^.*(.*)/d'"
127 #define _RPMDB_SONAME_REQUIRES "/bin/rpm -qa --requires | grep -v '^/' | grep '.*\\.so.*' | sort -u"
130 #define _RPMDB_FILE_REQUIRES "/bin/rpm -qa --requires | grep '^/' | sort -u"
135 if (fp == NULL) fp = stderr;
138 fprintf(fp,
"===================================== %s\n", msg);
143 fprintf(fp,
"%6d\t",
rpmdsIx(ds));
154 N_(
"Common options for all rpm modes and executables:"),
158 N_(
"print cpuinfo(...) dependency set"), NULL },
160 N_(
"print rpmlib(...) dependency set"), NULL },
162 N_(
"print /etc/rpm/sysinfo dependency set"), NULL },
164 N_(
"print getconf(...) dependency set"), NULL },
166 N_(
"print soname(...) dependencies for elf files"), NULL },
168 N_(
"print soname(...) dependencies from /etc/ld.so.cache"), NULL },
170 N_(
"print uname(...) dependency set"), NULL },
172 N_(
"print dependency set from a command pipe"), NULL },
175 N_(
"print perl(...) dependency set"), NULL },
177 N_(
"print python(...) dependency set"), NULL },
179 N_(
"print libtool(...) dependency set"), NULL },
181 N_(
"print pkgconfig(...) dependency set"), NULL },
184 N_(
"print pubkey(...) dependency set"), NULL },
186 N_(
"print arch(...) dependency set"), NULL },
188 N_(
"print file(...) dependency set"), NULL },
190 N_(
"print soname(...) dependency set"), NULL },
192 N_(
"print package(...) dependency set"), NULL },
195 N_(
"print java(...) dependency set"), NULL },
197 N_(
"print php(...) dependency set"), NULL },
199 N_(
"print ruby(...) dependency set"), NULL },
201 N_(
"print /var/lib/dpkg Provides: dependency set"), NULL },
203 N_(
"print /var/lib/dpkg Requires: dependency set"), NULL },
206 N_(
"print Provides: dependency set"), NULL },
208 N_(
"print Requires: dependency set"), NULL },
209 {
"closure", 0, POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &
print_closure, -1,
210 N_(
"check Requires: against Provides: for dependency closure"), NULL },
218 main(
int argc,
char *
const argv[])
226 const char * closure_name =
"for";
236 if ((
progname = strrchr(argv[0],
'/')) != NULL)
246 av = poptGetArgs(optCon);
271 sprintf(buf,
"final: files %d cdict[%d] %d%% ddictx[%d]", fc->nfiles,
argvCount(fc->cdict), ((100 * fc->fknown)/fc->nfiles),
argiCount(fc->ddictx));
276 P = fc->provides; fc->provides = NULL;
277 R = fc->requires; fc->requires = NULL;
281 closure_name =
"cpuinfo(...)";
285 closure_name =
"rpmlib(...)";
294 closure_name =
"getconf(...)";
298 closure_name =
"soname(...)";
299 for (i = 0; i < ac; i++)
305 closure_name =
"soname(...)";
311 closure_name =
"uname(...)";
318 closure_name =
"perl(...)";
320 fprintf(stderr,
"\n*** Gathering %s Provides: using\n\t%s\n", closure_name,
_perl_provides);
323 fprintf(stderr,
"\n*** Gathering %s Requires: using\n\t%s\n", closure_name,
_perl_requires);
331 closure_name =
"libtool(...)";
333 fprintf(stderr,
"\n*** Gathering %s Provides: using\n\t%s\n", closure_name,
_libtool_provides);
336 fprintf(stderr,
"\n*** Gathering %s Requires: using\n\t%s\n", closure_name,
_libtool_requires);
342 closure_name =
"pkgconfig(...)";
344 fprintf(stderr,
"\n*** Gathering %s Provides: using\n\t%s\n", closure_name,
_pkgconfig_provides);
347 fprintf(stderr,
"\n*** Gathering %s Requires: using\n\t%s\n", closure_name,
_pkgconfig_requires);
363 closure_name =
"soname(...)";
373 closure_name =
"package(...)";
385 closure_name =
"java(...)";
387 fprintf(stderr,
"\n*** Gathering %s Provides: using\n\t%s\n", closure_name,
_java_provides);
390 fprintf(stderr,
"\n*** Gathering %s Requires: using\n\t%s\n", closure_name,
_java_requires);
400 closure_name =
"dpkgrpm(...)";
402 fprintf(stderr,
"\n*** Gathering dpkg Provides: using\n\t%s\n",
_dpkg_provides);
411 closure_name =
"rpmdpkg(...)";
418 fprintf(stderr,
"\n*** Gathering dpkg Requires: using\n\t%s\n",
_dpkg_requires);
429 fprintf(stderr,
"\n*** Checking %s Requires(%d): against Provides(%d): closure:\n", closure_name,
rpmdsCount(R),
rpmdsCount(P));