Bug 22001

Summary: Fails to provide .so.1 and .so.1.8
Product: [Retired] Red Hat Linux Reporter: kenneth_porter
Component: gdAssignee: Phil Knirsch <pknirsch>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2000-12-11 06:32:20 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:

Description kenneth_porter 2000-12-09 07:20:18 UTC
When upgrading from 1.7.3 package, RPM complains that other packages (eg. linuxconf) depend on libgd.so.1 and this is not provided by the 
new 1.8.3-4 package. The spec file needs to declare Provides: for the symlinks created by ldconf in the %post script.

Correcting this by adding a "Provides:  libgd.so, libgd.so.1" declaration, I found that ldconfig (1.9.5-15) only installed the .so and .so.1.8 links, 
but not the .so.1 link. I had to add the last link manually. I don't understand why this link wasn't automatically created. The final Provides line 
should also include the .so.1.8 file.

Comment 1 Bill Nottingham 2000-12-11 06:32:17 UTC
Actually, if it's not getting picked up as providing this by RPM,
that would imply that the soname changed. I can only assume this was
done intentionally...

Comment 2 Phil Knirsch 2000-12-12 14:56:55 UTC
I'm a little confused here. The only packages i found were the gd-1.3 and
gd-1.8.3, so i don't know here 1.7.3 came from (the is only a gdbm-1.7.3
though).

But true, if the applications need it then there should be a Provides: for these
libraries if it doesn't break anything else (e.g. apps linked agains .so.1 und
gd-1.3 that won't work with .so.1 of gd-1.8.3 anymore).

Here a brief output of the gd library object dump. It makes clear why it only
provides .so.1.8:


[root@hamburg redhat]# objdump -p /usr/lib/libgd.so.1.8.3

/usr/lib/libgd.so.1.8.3:     file format elf32-i386

Program Header:
    LOAD off    0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
         filesz 0x0000e6e2 memsz 0x0000e6e2 flags r-x
    LOAD off    0x0000e6e4 vaddr 0x0000f6e4 paddr 0x0000f6e4 align 2**12
         filesz 0x0001e990 memsz 0x00022aa0 flags rw-
 DYNAMIC off    0x0002cfac vaddr 0x0002dfac paddr 0x0002dfac align 2**2
         filesz 0x000000c8 memsz 0x000000c8 flags rw-

Dynamic Section:
  NEEDED      libttf.so.2
  NEEDED      libjpeg.so.62
  NEEDED      libpng.so.2
  NEEDED      libz.so.1
  NEEDED      libm.so.6
  NEEDED      libc.so.6
  SONAME      libgd.so.1.8
  INIT        0x3184
  FINI        0xd774
  HASH        0x94
  STRTAB      0x1a20
  SYMTAB      0x900
  STRSZ       0xea1
  SYMENT      0x10
  PLTGOT      0x2dcb8
  PLTRELSZ    0x520
  PLTREL      0x11
  JMPREL      0x2c64
  REL         0x2b4c
  RELSZ       0x118
  RELENT      0x8
  VERNEED     0x2afc
  VERNEEDNUM  0x2
  VERSYM      0x28d8

Version References:
  required from libc.so.6:
    0x09691f73 0x00 04 GLIBC_2.1.3
    0x0d696910 0x00 03 GLIBC_2.0
  required from libm.so.6:
    0x0d696910 0x00 02 GLIBC_2.0