On Sat, Feb 16, 2002 at 03:41:38PM -0800, Dave Erickson wrote:
> The Linux 7.2 installs of ethereal are confused, to say
> the least, because of the way the rpms are named on rpmfind,
> and because of the openssl dependencies. e.g.
> wouldn't you expect ethereal-0.8.18-9.i386.rpm to be
> the complete install of ethereal, at least based on
> the name? And shouldn't the install of ethereal be
> happy if it finds libcrypto.so.0 *or greater*?
I'd expect that
1) an Ethereal RPM to include only Ethereal directly, and to
specify, as dependencies, only the *direct* dependencies
(the packages it's linked with, *NOT* any of the
packages that those packages in turn depend on, so that it'd
specify, if built with the UCD SNMP library, the UCD SNMP
library as a dependency, but *NOT* to specify libraries that
the UCD SNMP library depends on as dependencies, i.e. *NOT*
to specify the OpenSSL package as a dependency);
2) those packages, in turn, to specify, as dependencies, only
their direct dependencies;
3) the OpenSSL RPM would install libcrypto with an soname of
"libcrypto.so.0", not just with a real name of
"libcrypto.so.0.9.6c" (see
http://www.linuxdoc.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
);
4) the Ethereal binary would if linked with the "-lsnmp" shared
library, not be directly linked with "-lcrypto" if "-lcrypto"
is a shared library;
5) the "-lsnmp" shared library would be linked with the
"-lcrypto" shared library;
so that
1) the Ethereal RPM can be installed regardless of whether the
UCD SNMP RPM requires the OpenSSL RPM or not - the RPM
wouldn't include the transitive closure of "depends on", the
installer would compute that at installation time based on
whether the UCD SNMP library it'd install requires OpenSSL or
not, and pull in the OpenSSL RPM if and only if it's needed;
2) you don't have to make the damn symbolic link to
"libcrypto.so.0.9.6c" yourself;
2) the Ethereal binary will run regardless of whether the UCD
SNMP library requires -lcrypto or not - if it does require
it, the run-time linker will deduce that from the -lsnmp
library having been linked with -lcrypto, but Ethereal won't
*itself* have been linked with -lcrypto, so if the UCD SNMP
shared library *doesn't* require -lcrypto, the run-time
linker will correctly think Ethereal doesn't require it.
It appears that one or more of my 5 expectations above aren't met; if
not, I'd really like to know why, so that either
1) people can fix things so that they're met in the future
or
2) if there are technical reasons why they can't be met, people
can try to fix those technical reasons.