Bug 458646

Summary: Latest erlang build's dependencies don't resolve
Product: [Fedora] Fedora EPEL Reporter: Lubomir Rintel <lkundrak>
Component: erlangAssignee: Peter Lemenkov <lemenkov>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: el5CC: gemi
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: erlang-R12B-3.3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-08-12 08:23:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Quick fix none

Description Lubomir Rintel 2008-08-11 10:18:06 UTC
Description of problem:

Latest build's dependencies don't resolve.

Version-Release number of selected component (if applicable):

erlang-R12B-3.2.el5

Actual results:

--> Running transaction check
---> Package erlang.i386 0:R12B-3.2.el5 set to be updated
--> Processing Dependency: libc.so.6(GLIBC_PRIVATE) for package: erlang
---> Package erlang-doc.i386 0:R12B-3.2.el5 set to be updated
--> Finished Dependency Resolution
Error: Missing Dependency: libc.so.6(GLIBC_PRIVATE) is needed by package erlang

Comment 1 Lubomir Rintel 2008-08-11 10:22:21 UTC
The libc.so.6(GLIBC_PRIVATE) dependency traces to /usr/lib/erlang/lib/ssl-3.9/priv/bin/ssl_esock file:

    51: 00000000   256 FUNC    GLOBAL DEFAULT  UND __res_maybe_init@GLIBC_PRIVATE (8)
   170: 00000000   335 FUNC    GLOBAL DEFAULT  UND __res_iclose@GLIBC_PRIVATE (8)

It uses the functions in krb5int_des_cbc_decrypt:

0816a890 <krb5int_des_cbc_decrypt>:
 816c6fe:       e8 51 18 ee ff          call   804df54 <__res_iclose@plt>
 816c729:       e8 c6 10 ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c7a9:       e8 46 10 ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c819:       e8 d6 0f ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c869:       e8 86 0f ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c8f9:       e8 f6 0e ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c979:       e8 76 0e ee ff          call   804d7f4 <__res_maybe_init@plt>
 816c9e9:       e8 06 0e ee ff          call   804d7f4 <__res_maybe_init@plt>
 816ca44:       e8 ab 0d ee ff          call   804d7f4 <__res_maybe_init@plt>
 816dd8f:       e8 c0 01 ee ff          call   804df54 <__res_iclose@plt>
 816e330:       e8 1f fc ed ff          call   804df54 <__res_iclose@plt>
 816e370:       e8 df fb ed ff          call   804df54 <__res_iclose@plt>
 816e939:       e8 16 f6 ed ff          call   804df54 <__res_iclose@plt>
 816ea13:       e8 3c f5 ed ff          call   804df54 <__res_iclose@plt>
 816eaeb:       e8 64 f4 ed ff          call   804df54 <__res_iclose@plt>
 816ec8a:       e8 c5 f2 ed ff          call   804df54 <__res_iclose@plt>
 816ee18:       e8 37 f1 ed ff          call   804df54 <__res_iclose@plt>
 816ee5d:       e8 f2 f0 ed ff          call   804df54 <__res_iclose@plt>
 816f05d:       e8 f2 ee ed ff          call   804df54 <__res_iclose@plt>
 816f269:       e8 e6 ec ed ff          call   804df54 <__res_iclose@plt>
 816f2a2:       e8 ad ec ed ff          call   804df54 <__res_iclose@plt>
 816f2c4:       e8 8b ec ed ff          call   804df54 <__res_iclose@plt>

Where does that come from? Does it link statically to some crypto library?

Comment 2 Peter Lemenkov 2008-08-11 11:06:37 UTC
(In reply to comment #1)
> The libc.so.6(GLIBC_PRIVATE) dependency traces to
> /usr/lib/erlang/lib/ssl-3.9/priv/bin/ssl_esock file:
> 
>     51: 00000000   256 FUNC    GLOBAL DEFAULT  UND
> __res_maybe_init@GLIBC_PRIVATE (8)
>    170: 00000000   335 FUNC    GLOBAL DEFAULT  UND __res_iclose@GLIBC_PRIVATE
> (8)
> 
> It uses the functions in krb5int_des_cbc_decrypt:

[skip]

> Does it link statically to some crypto library?

Yes, it does. According to /usr/src/redhat/BUILD/otp_src_R12B-3/lib/ssl/c_src/i686-pc-linux-gnu :

# not dynamic crypto lib (default from R11B-5)
NEED_KERBEROS=yes
NEED_ZLIB=yes
SSL_MAKEFILE =
CC_R_OPT =
SSL_LINK_LIB = $(SSL_LIBDIR)/libssl.a $(SSL_LIBDIR)/libcrypto.a
ifeq ($(NEED_KERBEROS),yes)
SSL_LINK_LIB += /usr/lib/libkrb5.a /usr/lib/libkrb5support.a /usr/lib/libk5crypto.a /usr/lib/libresolv.a /usr/lib/libcom_err.a
endif
ifeq ($(NEED_ZLIB),yes)
SSL_LINK_LIB += /usr/lib/libz.a
endif

Comment 3 Peter Lemenkov 2008-08-11 13:48:26 UTC
Created attachment 313962 [details]
Quick fix

Seems that since R11B-5 they switch to static linking of kerberos and crypto libraries instead of dynamic one.

Comment 4 Peter Lemenkov 2008-08-11 14:30:08 UTC
Just discovered that they introduced new switch --enable-dynamic-ssl-lib.

Comment 5 Lubomir Rintel 2008-08-12 08:23:34 UTC
So it seems you really fixed this one in R12B-3.3. Thanks!