#48404 /usr/lib64/dirsrv/libnunc-stans.so is owned by both -libs and -devel
Closed: Fixed None Opened 4 years ago by nhosoi.

Ticket was cloned from Red Hat Bugzilla (product Red Hat Enterprise Linux 7): Bug 1257568

Description of problem:

The file /usr/lib64/dirsrv/libnunc-stans.so is owned by both -libs and -devel,
even if -devel requires -libs so will install that file via -libs anyway.

Version-Release number of selected component (if applicable):

# rpm -qf /usr/lib64/dirsrv/libnunc-stans.so
389-ds-base-libs-1.3.4.0-13.el7.x86_64
389-ds-base-devel-1.3.4.0-13.el7.x86_64

How reproducible:

Deterministic.

Steps to Reproduce:
1. # rpm -qf /usr/lib64/dirsrv/libnunc-stans.so

Actual results:

389-ds-base-libs-1.3.4.0-13.el7.x86_64
389-ds-base-devel-1.3.4.0-13.el7.x86_64

Expected results:

389-ds-base-libs-1.3.4.0-13.el7.x86_64

Additional info:

Note that

# rpm -q --requires 389-ds-base-devel-1.3.4.0-13.el7.x86_64 | grep
389-ds-base-libs
389-ds-base-libs = 1.3.4.0-13.el7

{{{
I0> rpm -qlp /home/wibrown/build/ds/rpmbuild/RPMS/x86_64/389-ds-base-devel-1.3.5.4-20160527044612.fc25.x86_64.rpm
/usr/include/dirsrv
/usr/include/dirsrv/repl-session-plugin.h
/usr/include/dirsrv/slapi-plugin.h
/usr/include/dirsrv/winsync-plugin.h
/usr/lib64/pkgconfig/dirsrv.pc
/usr/share/doc/389-ds-base-devel
/usr/share/doc/389-ds-base-devel/LICENSE
/usr/share/doc/389-ds-base-devel/LICENSE.GPLv3+
/usr/share/doc/389-ds-base-devel/LICENSE.openssl
/usr/share/doc/389-ds-base-devel/README.devel

I0> rpm -qlp /home/wibrown/build/ds/rpmbuild/RPMS/x86_64/389-ds-base-libs-1.3.5.4-20160527044612.fc25.x86_64.rpm
/usr/lib64/dirsrv
/usr/lib64/dirsrv/libns-dshttpd.so
/usr/lib64/dirsrv/libns-dshttpd.so.0
/usr/lib64/dirsrv/libns-dshttpd.so.0.0.0
/usr/lib64/dirsrv/libnunc-stans.so
/usr/lib64/dirsrv/libnunc-stans.so.0
/usr/lib64/dirsrv/libnunc-stans.so.0.0.0
/usr/lib64/dirsrv/libslapd.so
/usr/lib64/dirsrv/libslapd.so.0
/usr/lib64/dirsrv/libslapd.so.0.0.0
/usr/share/doc/389-ds-base-libs
/usr/share/doc/389-ds-base-libs/LICENSE
/usr/share/doc/389-ds-base-libs/LICENSE.GPLv3+
/usr/share/doc/389-ds-base-libs/LICENSE.openssl
/usr/share/doc/389-ds-base-libs/README.devel

}}}

Fixes the lib, and the make rpms command. devel depends on libs, so it's no harm to move them all to libs.

If I delete this line, my build fails...
{{{
442 %{_libdir}/%{pkgname}/libslapd.so
}}}
The error message:
{{{
error: Installed (but unpackaged) file(s) found:
/usr/lib64/dirsrv/libslapd.so
}}}
The fix for the libnunc-stans.so itself is good.

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.

Replying to [comment:8 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.

I don't think this change should be covered by this ticket? Also, I think it is intentionally set -- .so is in devel and .so.0 and .so.0.0.0 are in libs. If that's the case, we may want to put libnunc-stans.so and libnunc-stans.so.* separately. Let's ask to the list.

Correction. Could you follow the conventional rule for rpm packaging?
. Put .so in -devel package
. Put .so.<version_#> in -libs package

Thanks.

Yep, I'll update that and will post a new patch.

Well, it looks like that's already the case then. This means there is no bug, because that's how it's done already.

Closing as invalid since it's not an issue then ....

Indeed, I see libnunc-stans.so in both rpm. This solves it for me... :)
{{{
diff --git a/rpm/389-ds-base.spec.in b/rpm/389-ds-base.spec.in
index 6cf5fda..6410837 100644
--- a/rpm/389-ds-base.spec.in
+++ b/rpm/389-ds-base.spec.in
@@ -470,7 +470,7 @@ fi
%{_libdir}/%{pkgname}/libslapd.so.
%{_libdir}/%{pkgname}/libns-dshttpd.so

%if %{use_nunc_stans}
-%{_libdir}/%{pkgname}/libnunc-stans.so
+%{_libdir}/%{pkgname}/libnunc-stans.so.

%endif

%files snmp
}}}

Actually, there is a mistake here.

It should be this:

{{{
{wibrown@ldapkdc 13:23} ~/development/389ds I0> rpm -qlp /home/wibrown/build/ds/rpmbuild/RPMS/x86_64/389-ds-base-devel-1.3.5.4-20160609031950.fc25.x86_64.rpm
/usr/include/dirsrv
/usr/include/dirsrv/repl-session-plugin.h
/usr/include/dirsrv/slapi-plugin.h
/usr/include/dirsrv/winsync-plugin.h
/usr/lib64/dirsrv/libns-dshttpd.so
/usr/lib64/dirsrv/libnunc-stans.so
/usr/lib64/dirsrv/libslapd.so
/usr/lib64/pkgconfig/dirsrv.pc
/usr/share/doc/389-ds-base-devel
/usr/share/doc/389-ds-base-devel/LICENSE
/usr/share/doc/389-ds-base-devel/LICENSE.GPLv3+
/usr/share/doc/389-ds-base-devel/LICENSE.openssl
/usr/share/doc/389-ds-base-devel/README.devel
{wibrown@ldapkdc 13:26} ~/development/389ds I0> rpm -qlp /home/wibrown/build/ds/rpmbuild/RPMS/x86_64/389-ds-base-libs-1.3.5.4-20160609031950.fc25.x86_64.rpm
/usr/lib64/dirsrv
/usr/lib64/dirsrv/libns-dshttpd.so.0
/usr/lib64/dirsrv/libns-dshttpd.so.0.0.0
/usr/lib64/dirsrv/libnunc-stans.so.0
/usr/lib64/dirsrv/libnunc-stans.so.0.0.0
/usr/lib64/dirsrv/libslapd.so.0
/usr/lib64/dirsrv/libslapd.so.0.0.0
/usr/share/doc/389-ds-base-libs
/usr/share/doc/389-ds-base-libs/LICENSE
/usr/share/doc/389-ds-base-libs/LICENSE.GPLv3+
/usr/share/doc/389-ds-base-libs/LICENSE.openssl
/usr/share/doc/389-ds-base-libs/README.devel

}}}

With -devel and -libs

{{{
{wibrown@ldapkdc 13:28} ~/development/389ds I0> ls -al /usr/lib64/dirsrv/{libslapd,libnunc-stans,libns-dshttpd}*
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libns-dshttpd.so -> libns-dshttpd.so.0.0.0
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libns-dshttpd.so.0 -> libns-dshttpd.so.0.0.0
-rwxr-xr-x. 1 root root 724176 Jun 9 13:22 /usr/lib64/dirsrv/libns-dshttpd.so.0.0.0
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libnunc-stans.so -> libnunc-stans.so.0.0.0
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libnunc-stans.so.0 -> libnunc-stans.so.0.0.0
-rwxr-xr-x. 1 root root 40304 Jun 9 13:22 /usr/lib64/dirsrv/libnunc-stans.so.0.0.0
lrwxrwxrwx. 1 root root 17 Jun 9 13:22 /usr/lib64/dirsrv/libslapd.so -> libslapd.so.0.0.0
lrwxrwxrwx. 1 root root 17 Jun 9 13:22 /usr/lib64/dirsrv/libslapd.so.0 -> libslapd.so.0.0.0
-rwxr-xr-x. 1 root root 3116800 Jun 9 13:22 /usr/lib64/dirsrv/libslapd.so.0.0.0

}}}

Without -devel, but with -libs.

{{{

}}}{wibrown@ldapkdc 13:29} ~/development/389ds I0> ls -al /usr/lib64/dirsrv/{libslapd,libnunc-stans,libns-dshttpd}*
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libns-dshttpd.so.0 -> libns-dshttpd.so.0.0.0
-rwxr-xr-x. 1 root root 724176 Jun 9 13:22 /usr/lib64/dirsrv/libns-dshttpd.so.0.0.0
lrwxrwxrwx. 1 root root 22 Jun 9 13:22 /usr/lib64/dirsrv/libnunc-stans.so.0 -> libnunc-stans.so.0.0.0
-rwxr-xr-x. 1 root root 40304 Jun 9 13:22 /usr/lib64/dirsrv/libnunc-stans.so.0.0.0
lrwxrwxrwx. 1 root root 17 Jun 9 13:22 /usr/lib64/dirsrv/libslapd.so.0 -> libslapd.so.0.0.0
-rwxr-xr-x. 1 root root 3116800 Jun 9 13:22 /usr/lib64/dirsrv/libslapd.so.0.0.0
}}}

ldd is happy too:

{{{
{wibrown@ldapkdc 13:30} ~/development/389ds I0> ldd /usr/sbin/ns-slapd | grep -i slapd
libslapd.so.0 => /usr/lib64/dirsrv/libslapd.so.0 (0x00007f27076d1000)

}}}

commit db0f124
Writing objects: 100% (4/4), 626 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/ds.git
db116a4..db0f124 master -> master

Metadata Update from @firstyear:
- Issue assigned to firstyear
- Issue set to the milestone: 1.3.5.5

3 years ago

Login to comment on this ticket.

Metadata