Tuesday, May 31, 2016

[389-devel] Re: Please comment: [389 Project] #48404: /usr/lib64/dirsrv/libnunc-stans.so is owned by both -libs and -devel

On Tue, 2016-05-31 at 12:49 -0700, Noriko Hosoi wrote:
> William raised a good point in fixing this ticket #48404.
>
> We have *.so and *.so.* (*.so # & *.so.#.#.#) for libraries. I assumed 
> *.so should be in 389-ds-base-devel and *.so.* should be in 
> 389-ds-base-libs.  But it is not needed to be like that?  He proposed to 
> put all the .so and .so.* files in -libs and none in -devel.
>
> We are currently discussing about libnunc-stans.so* and libslapd.so*.  I 
> see another one libns-dshttpd.so* which are all in -libs.
>

lrwxrwxrwx. 1 root root        17 Apr 14 10:22 libslapd.so -> libslapd.so.0.0.0
lrwxrwxrwx. 1 root root        17 Apr 14 10:22 libslapd.so.0 -> libslapd.so.0.0.0
-rwxr-xr-x. 1 root root   6403918 Apr 14 10:22 libslapd.so.0.0.0

Basically, if we looked at -devel in isolation, it requires -libs to function.

But -devel provides a .so symlink, and we may have some application that looks for that. We should require -devel for an
application to find our library.

That's why I'd rather just see all the .so objects in -libs, and leave -devel to be our headers.


There are going to be three (or maybe more) use cases:

DS install (maybe with external plugins using the .so files):

* 389-ds-base
* 389-ds-base-libs

DS developer (maybe making plugins?)

* 389-ds-base
* 389-ds-base-libs
* 389-ds-base-devel

Plugin developer, or some other development

* 389-ds-base-libs
* 389-ds-base-devel

In all, they will all need 389-ds-base-libs which is why we should put all the .so there.

--
Sincerely,

William Brown
Software Engineer
Red Hat, Brisbane

No comments:

Post a Comment