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.
Thanks, --noriko
On 05/29/2016 04:11 PM, 389 Project wrote:
#48404: /usr/lib64/dirsrv/libnunc-stans.so is owned by both -libs and -devel -------------------------------------------------+------------------------- Reporter: nhosoi | Owner: Type: defect | firstyear Priority: major | Status: Component: Directory Server | assigned Resolution: | Milestone: 1.3.5.5 Blocked By: | Version: Review: review? | Keywords: Red Hat Bugzilla: | Blocking: [https://bugzilla.redhat.com/show_bug.cgi?id=1257568%7C Ticket origin: 1257568] | Community -------------------------------------------------+-------------------------
Comment (by firstyear):
You also need to change a later line:
{{{ %{_libdir}/%{pkgname}/libslapd.so.* TO %{_libdir}/%{pkgname}/libslapd.so* }}}
Else it won't match libslapd.so into -libs.
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.
389-devel@lists.fedoraproject.org