https://bugzilla.redhat.com/show_bug.cgi?id=1258572
--- Comment #9 from Ralf Corsepius rc040203@freenet.de --- (In reply to Sergio Durigan Junior from comment #8)
Without this %defattr, the shlib is installed with +x (thus generating a rpmlint warning). Is there any other way to fix this?
Which OS are you on? I do not see such warning:
# rpmlint /var/lib/mock/fedora-rawhide-x86_64/result/libipt*-1.4.2-1.fc24.x86_64.rpm libipt.x86_64: W: shared-lib-calls-exit /usr/lib64/libipt.so.1.4.0 exit@GLIBC_2.2.5 libipt-devel.x86_64: W: only-non-binary-in-usr-lib 3 packages and 0 specfiles checked; 0 errors, 2 warnings.
# rpm -qlvp /var/lib/mock/fedora-rawhide-x86_64/result/libipt*-1.4.2-1.fc24.x86_64.rpm | grep lib.*.so lrwxrwxrwx 1 root root 15 Sep 3 07:06 /usr/lib64/libipt.so.1 -> libipt.so.1.4.0 -rwxr-xr-x 1 root root 71736 Sep 3 07:06 /usr/lib64/libipt.so.1.4.0 lrwxrwxrwx 1 root root 33 Sep 3 07:06 /usr/lib/debug/.build-id/d9/ec6747d0130ae21dafc10f3d04ee7268bd3dbd -> ../../../../lib64/libipt.so.1.4.0 lrwxrwxrwx 1 root root 37 Sep 3 07:06 /usr/lib/debug/.build-id/d9/ec6747d0130ae21dafc10f3d04ee7268bd3dbd.debug -> ../../usr/lib64/libipt.so.1.4.0.debug -r--r--r-- 1 root root 285968 Sep 3 07:06 /usr/lib/debug/usr/lib64/libipt.so.1.4.0.debug lrwxrwxrwx 1 root root 21 Sep 3 07:06 /usr/lib/debug/usr/lib64/libipt.so.1.debug -> libipt.so.1.4.0.debug lrwxrwxrwx 1 root root 21 Sep 3 07:06 /usr/lib/debug/usr/lib64/libipt.so.debug -> libipt.so.1.4.0.debug lrwxrwxrwx 1 root root 11 Sep 3 07:06 /usr/lib64/libipt.so -> libipt.so.1
Besides this, such a warning from rpmlint would contradict Fedora conventions. Should your rpmlint produce an error this would be a bug in rpmlint. Though its arguable whether shared libs need to be +x, for historical reasons, it's Fedora convention to install shared lib with +x.
IMO, should this convention change, then this change should happen inside of rpm and not inside of packages.