[pacman-dev] [RFC] Find real library names with libdepends/libprovides

Dave Reisner d at falconindy.com
Wed May 8 19:59:53 EDT 2013


On Thu, May 09, 2013 at 12:15:27AM +0300, Mohammad Alsaleh wrote:
> 
>   makepkg only handles libprovides/libdepends correctly if the naming
>   scheme is:
> 
>     lib${name}.so --> lib$name.so.$ver
> 
>   But it is not uncommon for libname.so to link to a '.so' file that
>   does not follow this naming scheme. For example, these 2 schemes are
>   sometimes used:
>     lib$name.so --> libname$major.$major.$minor
>     lib$name.so --> libname-$major.$major.$minor
> 
>   There exists other schemes.

Can you point out where these exist in the wild? They're hugely
non-conformant, and glibc's ldconfig won't even read these files without
specific nudging. I'm not sure how other implementations behave.

> 
>   With those cases, and before these patches, makepkg would add
>   lib$name.so to provides unversioned and display a warning.
> 
>   And if another package adds lib$name.so as a dependency, the build
>   will succeed and only a warning will be displayed.
> 
>   Not only makepkg fails to find version/arch for libraries in those
>   scenarios. But the success of builds in both provide/depend sides
>   might give the illusion that versioned sodepends are actually honored.
> 
>   If the idea behind these 2 patches is rejected. I would like to
>   propose promoting the warning in find_libprovides() to an error.
> 
> [PATCH 1/2] makepkg: Search/Add real library names libprovide link to
> [PATCH 2/2] makepkg: Search/Add real library names libdepend link to
> 


More information about the pacman-dev mailing list