You are not logged in.
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
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
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
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline