You are not logged in.

#1 2017-04-25 12:50:07

R00KIE
Forum Fellow
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 4,734

[SOLVED] New symlinks without owner after installing package

I've had to install lib32-libopenssl-1.0-compat (from the AUR) because one of the programs I use (skype) needs it to work. After compiling and installing the package there are a couple symlinks that have no owner and I can't figure out where they come from (although they are needed).

The symlinks are:

/usr/lib32/libcrypto.so.1.0.0 ->/usr/lib32/libcrypto-compat.so.1.0.0
/usr/lib32/libssl.so.1.0.0 ->/usr/lib32/libssl-compat.so.1.0.0

The PKGBUILD does not create those symlinks, there is no post-install script and no hook, the package itself does not contain the symlinks (see below). The only hook that runs after installing the package is systemd-update (which prints the message "Arming ConditionNeedsUpdate...").

> pacman -Qo /usr/lib32/{libcrypto.so.1.0.0,libssl.so.1.0.0}
error: No package owns /usr/lib32/libcrypto.so.1.0.0
error: No package owns /usr/lib32/libssl.so.1.0.0
> bsdtar -tf lib32-libopenssl-1.0-compat-1.0.2.k-3-x86_64.pkg.tar 
.PKGINFO
.BUILDINFO
.MTREE
usr/
usr/lib32/
usr/share/
usr/share/licenses/
usr/share/licenses/lib32-libopenssl-1.0-compat/
usr/share/licenses/lib32-libopenssl-1.0-compat/LICENSE
usr/lib32/openssl-1.0-compat/
usr/lib32/libssl-compat.so.1.0.0
usr/lib32/libcrypto-compat.so.1.0.0
usr/lib32/openssl-1.0-compat/libcrypto.so.1.0.0
usr/lib32/openssl-1.0-compat/libssl.so
usr/lib32/openssl-1.0-compat/libssl.so.1.0.0
usr/lib32/openssl-1.0-compat/libcrypto.so

The curious thing is that these symlinks are removed if I remove the package, can anyone shed some light on what is going on here?

Last edited by R00KIE (2017-04-25 14:38:48)


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

#2 2017-04-25 13:29:37

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,463

Re: [SOLVED] New symlinks without owner after installing package

ldconfig will make symilnks to match the soname, if that's what you're seeing. I don't think they would be removed on package removal, but maybe ldconfig does that was well.

Use readelf -d to check the soname of the included libraries.

Offline

#3 2017-04-25 14:38:31

R00KIE
Forum Fellow
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 4,734

Re: [SOLVED] New symlinks without owner after installing package

Readelf does seem to return something along the lines of the symlink names I'm seeing:

> readelf -d libcrypto-compat.so.1.0.0 

Dynamic section at offset 0x20aaa8 contains 27 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000e (SONAME)                     Library soname: [libcrypto.so.1.0.0]
 0x00000010 (SYMBOLIC)                   0x0
 0x0000000c (INIT)                       0x3d8c0
 0x0000000d (FINI)                       0x157234
 0x00000019 (INIT_ARRAY)                 0x1fc674
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x0000001a (FINI_ARRAY)                 0x1fc678
 0x0000001c (FINI_ARRAYSZ)               4 (bytes)
 0x6ffffef5 (GNU_HASH)                   0x138
 0x00000005 (STRTAB)                     0x178b0
 0x00000006 (SYMTAB)                     0x7110
 0x0000000a (STRSZ)                      79529 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0x20c000
 0x00000002 (PLTRELSZ)                   792 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0x3d5a8
 0x00000011 (REL)                        0x2d100
 0x00000012 (RELSZ)                      66728 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0x2d050
 0x6fffffff (VERNEEDNUM)                 2
 0x6ffffff0 (VERSYM)                     0x2af5a
 0x6ffffffa (RELCOUNT)                   8328
 0x00000000 (NULL)                       0x0

> readelf -d libssl-compat.so.1.0.0 

Dynamic section at offset 0x6eeb4 contains 27 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libcrypto.so.1.0.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
 0x0000000e (SONAME)                     Library soname: [libssl.so.1.0.0]
 0x00000010 (SYMBOLIC)                   0x0
 0x0000000c (INIT)                       0xe6f8
 0x0000000d (FINI)                       0x4f3f4
 0x00000019 (INIT_ARRAY)                 0x6e194
 0x0000001b (INIT_ARRAYSZ)               4 (bytes)
 0x0000001a (FINI_ARRAY)                 0x6e198
 0x0000001c (FINI_ARRAYSZ)               4 (bytes)
 0x6ffffef5 (GNU_HASH)                   0x138
 0x00000005 (STRTAB)                     0x599c
 0x00000006 (SYMTAB)                     0x1b7c
 0x0000000a (STRSZ)                      18725 (bytes)
 0x0000000b (SYMENT)                     16 (bytes)
 0x00000003 (PLTGOT)                     0x70000
 0x00000002 (PLTRELSZ)                   3072 (bytes)
 0x00000014 (PLTREL)                     REL
 0x00000017 (JMPREL)                     0xdaf8
 0x00000011 (REL)                        0xaad8
 0x00000012 (RELSZ)                      12320 (bytes)
 0x00000013 (RELENT)                     8 (bytes)
 0x6ffffffe (VERNEED)                    0xaa88
 0x6fffffff (VERNEEDNUM)                 1
 0x6ffffff0 (VERSYM)                     0xa2c2
 0x6ffffffa (RELCOUNT)                   1526
 0x00000000 (NULL)                       0x0

Your guess about ldconfig is correct, I have tried manually deleting the symlink and running ldconfig and the link is created, then if manually deleting the file pointed to by the symlink and running ldconfig the symlink is deleted.

Mystery solved smile


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

Board footer

Powered by FluxBB