hi jim thanks for taking the time to respond.. Jim Perrin wrote: > On 8/29/05, jeff stern <jas@xxxxxxx> wrote: > >>hi, i am having the following problem with a dependency on some rpm's i >>am building, and then am attempting to serve out with my own yum repository. >> >>i recompile all the latest php-* rpms for fedora core 4, and enable >>ibase (rpmbuild --with ibase) so that the php-interbase~ rpm will be >>created (support for connecting to interbase database servers using php). >> >>1) first problem: rpm cannot find my libgds.so file .. >> >>however, when i try to install these rpms using rpm itself, >>php-interbase seems to require 'libgds.so' -- a dynamically linked >>library supplied by Borland with the Linux interbase client software >>(i.e., /opt/interbase/lib/libgds.so DOES exist on my system, when i >>build the rpms, and of course, later, when i install. and >>/opt/interbase/lib *IS* in my /etc/ld.so.conf file).. >> > > > It may be on your system, but does RPM know it's there? Did you use > rpm to install interbase in opt? well, i've tried it both ways. several times i built the rpms on a system which had the rpm from Borland (InterBaseC_LI-V7.1.0-1.i386.rpm). this rpm contained the libgds.so library file. the system(s) i installed the php-interbase rpm i'd made, also had this Borland rpm. they all had problems. i also have just recently started doing it the other way (no rpm), because Borland has since come out with a newer version of their interbase client for linux (7.5), and with their newer version, they are not releasing it as an rpm -- instead, it's just a tarball with a shell-based install script. in either case, i have the same problem. php-interbase cannot be installed -- even to the very same system the php-interbase was built on -- because of this dependency problem. > If so, does rpm -q --filesbypkg interbase or whatever show this file? yes, that's what's so bizarre. here is the output (from when i have the Borland rpm installed): ---------------------------------------------------------------------- # rpm -q --filesbypkg InterBaseC_LI InterBaseC_LI /opt/interbase InterBaseC_LI /opt/interbase/License.txt InterBaseC_LI /opt/interbase/ReleaseNotes.pdf InterBaseC_LI /opt/interbase/bin InterBaseC_LI /opt/interbase/bin/gbak InterBaseC_LI /opt/interbase/bin/gfix InterBaseC_LI /opt/interbase/bin/gpre InterBaseC_LI /opt/interbase/bin/iblicense InterBaseC_LI /opt/interbase/bin/ibnodeid InterBaseC_LI /opt/interbase/bin/isql InterBaseC_LI /opt/interbase/doc InterBaseC_LI /opt/interbase/doc/How2GetDocs.txt InterBaseC_LI /opt/interbase/examples InterBaseC_LI /opt/interbase/examples/align.h InterBaseC_LI /opt/interbase/examples/api1.c InterBaseC_LI /opt/interbase/examples/api10.c InterBaseC_LI /opt/interbase/examples/api11.c InterBaseC_LI /opt/interbase/examples/api12.c InterBaseC_LI /opt/interbase/examples/api13.c InterBaseC_LI /opt/interbase/examples/api14.e InterBaseC_LI /opt/interbase/examples/api15.c InterBaseC_LI /opt/interbase/examples/api16.c InterBaseC_LI /opt/interbase/examples/api16t.c InterBaseC_LI /opt/interbase/examples/api2.c InterBaseC_LI /opt/interbase/examples/api3.c InterBaseC_LI /opt/interbase/examples/api4.c InterBaseC_LI /opt/interbase/examples/api5.c InterBaseC_LI /opt/interbase/examples/api6.c InterBaseC_LI /opt/interbase/examples/api7.c InterBaseC_LI /opt/interbase/examples/api8.c InterBaseC_LI /opt/interbase/examples/api9.c InterBaseC_LI /opt/interbase/examples/api9f.c InterBaseC_LI /opt/interbase/examples/api9f.sql InterBaseC_LI /opt/interbase/examples/apifull.c InterBaseC_LI /opt/interbase/examples/blindmeta.sql InterBaseC_LI /opt/interbase/examples/dyn1.e InterBaseC_LI /opt/interbase/examples/dyn2.e InterBaseC_LI /opt/interbase/examples/dyn3.e InterBaseC_LI /opt/interbase/examples/dyn4.e InterBaseC_LI /opt/interbase/examples/dyn5.e InterBaseC_LI /opt/interbase/examples/dynfull.e InterBaseC_LI /opt/interbase/examples/employe2.sql InterBaseC_LI /opt/interbase/examples/example.h InterBaseC_LI /opt/interbase/examples/ib_udf.sql InterBaseC_LI /opt/interbase/examples/makefile InterBaseC_LI /opt/interbase/examples/readmeta.sql InterBaseC_LI /opt/interbase/examples/stat1.e InterBaseC_LI /opt/interbase/examples/stat10.e InterBaseC_LI /opt/interbase/examples/stat11.e InterBaseC_LI /opt/interbase/examples/stat12.e InterBaseC_LI /opt/interbase/examples/stat12t.e InterBaseC_LI /opt/interbase/examples/stat2.e InterBaseC_LI /opt/interbase/examples/stat3.e InterBaseC_LI /opt/interbase/examples/stat4.e InterBaseC_LI /opt/interbase/examples/stat5.e InterBaseC_LI /opt/interbase/examples/stat6.e InterBaseC_LI /opt/interbase/examples/stat7.e InterBaseC_LI /opt/interbase/examples/stat8.e InterBaseC_LI /opt/interbase/examples/stat9.e InterBaseC_LI /opt/interbase/examples/udf.sql InterBaseC_LI /opt/interbase/examples/udflib.c InterBaseC_LI /opt/interbase/examples/writemeta.sql InterBaseC_LI /opt/interbase/examples/xml_api_buffer.c InterBaseC_LI /opt/interbase/examples/xml_api_file.c InterBaseC_LI /opt/interbase/include InterBaseC_LI /opt/interbase/include/gds.f InterBaseC_LI /opt/interbase/include/gds.h InterBaseC_LI /opt/interbase/include/gds.hxx InterBaseC_LI /opt/interbase/include/ib_util.h InterBaseC_LI /opt/interbase/include/ibase.h InterBaseC_LI /opt/interbase/include/iberror.h InterBaseC_LI /opt/interbase/include/ibxml.h InterBaseC_LI /opt/interbase/include/ibxml_proto.h InterBaseC_LI /opt/interbase/include/perf.h InterBaseC_LI /opt/interbase/interbase.msg InterBaseC_LI /opt/interbase/lib InterBaseC_LI /usr/include/gds.h InterBaseC_LI /usr/include/ib_util.h InterBaseC_LI /usr/include/ibase.h InterBaseC_LI /usr/include/iberror.h InterBaseC_LI /usr/include/ibxml.h InterBaseC_LI /usr/include/ibxml_proto.h InterBaseC_LI /usr/lib/libgds.so.0 InterBaseC_LI /usr/lib/libibxml.so # ---------------------------------------------------------------------- as you can see, the second-to-the-last line shows that /usr/lib/libgds.so.0 IS included in the rpm --- though /usr/lib/libgds.so (a symlink to the ~so.0 version) is not. i had wondered whether the symlink was the problem (rpm/yum don't see the symlinked version), but without rebuilding Borland's own InterBaseC_LI rpm (and putting in a 'Provides: libgds.so'), i couldn't really test this. besides, even when the interbase driver is not installed via rpm, isn't the whole point of auto-dependency checking, that it should see the libraries available to the system and tell whether they are there -- *regardless* of HOW they were installed? >>--------------------------------------------------------------------- >># rpm -qp --requires php-interbase-5.0.4-10.4.i686.rpm >>rpmlib(VersionedDependencies) <= 3.0.3-1 >>php = 5.0.4-10.4 >>perl >>grep >>rpmlib(PayloadFilesHavePrefix) <= 4.0-1 >>rpmlib(CompressedFileNames) <= 3.0.4-1 >>--------------------------------------------------------------------- > > > Sounds like it's missing an entry in the requires line then. no! that's not the problem.. it ***USED*** to ALSO say libgds.so , but what i'm saying is that i got it to OMIT the 'libgds.so' (by using AutoReq: 0) in a feeble attempt to fix the problem. and this DID fix the install dependency for rpm, but NOT for yum. > Just because it installs fine, doesn't mean its not busted :-P heheh.. well, ain't that a fact >>how does this dependency still show up with yum, even though i purposely >>took it out during rpmbuild? >> >>is yum doing its OWN auto-dependency checking? > > > > I believe so, yes. then i think this is a problem, because it really needs to either 1) be turned off, or, better yet, the auto-dependency checking needs to be fixed (or configured) in such a way that it WILL SEE the libgds.so that is already on the system (whether by rpm-install, or by tarball: either way, ldconfig -v DOES see it, so why doesn't yum's auto-dependency checking?)