Linker errors about soname

I have linker errors, while creating rpms for OpenSuSE. RPMS for Fedora are created correctly.

There’s no difference if I create symlinks to my library or not.
Part of log with error messages:


           59s] RPMLINT report:
           59s] ===============
           60s] (none): E: badness 11200 exceeds threshold 1000, aborting.
           60s] libsell.i586: W: shlib-policy-nonversioned-dir /usr/share/doc/packages/libsell
           60s] Your shared library package contains non-versioned directories. Those will not
           60s] allow to install multiple versions of the package in parallel.
           60s] 
           60s] libsell.i586: E: shlib-policy-name-error (Badness: 10000) libsell1
           60s] Your package contains a single shared library but is not named after its
           60s] SONAME.
           60s] 
           60s] libsell.i586: W: no-url-tag
           60s] libsell.src: W: no-url-tag
           60s] The URL tag is missing. Please add a http or ftp link to the project location.
           60s] 
           60s] libsell.i586: W: no-changelogname-tag
           60s] libsell.src: W: no-changelogname-tag
           60s] There is no changelog. Please insert a '%changelog' section heading in your
           60s] spec file and prepare your changes file using e.g. the 'osc vc' command.
           60s] 
           60s] libsell.i586: E: library-without-ldconfig-postun (Badness: 300) /usr/lib/libsell.so.1.0
           60s] libsell.i586: E: library-without-ldconfig-postun (Badness: 300) /usr/lib/libsell.so.1
           60s] This package contains a library and provides no %postun scriptlet containing a
           60s] call to ldconfig.
           60s] 
           60s] libsell.i586: E: library-without-ldconfig-postin (Badness: 300) /usr/lib/libsell.so.1.0
           60s] libsell.i586: E: library-without-ldconfig-postin (Badness: 300) /usr/lib/libsell.so.1
           60s] This package contains a library and provides no %post scriptlet containing a
           60s] call to ldconfig.
           60s] 
           60s] libsell.i586: W: files-duplicate /usr/lib/libsell.so.1 /usr/lib/libsell.so:/usr/lib/libsell.so.1.0
           60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so.1.0
           60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so
           60s] libsell.i586: I: binary-or-shlib-calls-gethostbyname /usr/lib/libsell.so.1
           60s] The binary calls gethostbyname(). Please port the code to use getaddrinfo().
           60s] 
           60s] 2 packages and 0 specfiles checked; 5 errors, 6 warnings.
           60s] 
           60s] ### WATCHDOG MARKER START ###
           63s]    47.440993] SysRq : Power Off
           63s]    47.442601] reboot: Power down
           75s] ### WATCHDOG MARKER END ###

        

My .spec file looks like this:


        Name:           libsell
        Version:        0.0.1
        Release:        1
        License:        LGPL-3.0
        BuildRoot:      %{_tmppath}/libsell
        Summary:        Simple extensible log library
        Source:         libsell.tar.gz

        %description
        Simple and extensible log library. Application can configure this library or order this library to read configuration variable called SELL_RULES. By setting SELL_RULES variable, user can filter messages, selecting output files, etc.

        %prep
        %setup -q

        %build
        make %{?_smp_mflags} 

        %install
        mkdir -p $RPM_BUILD_ROOT/usr/%_lib 
        install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so.1.0 $RPM_BUILD_ROOT/usr/%_lib/libsell.so.1.0
        install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so.1 $RPM_BUILD_ROOT/usr/%_lib/libsell.so.1
        install -m755 $RPM_BUILD_DIR/libsell-0.0.1/libsell.so $RPM_BUILD_ROOT/usr/%_lib/libsell.so

        %files
        %defattr(-,root,root)
        %doc LICENSE
        /usr/%_lib/libsell.so.1.0
        /usr/%_lib/libsell.so.1
        /usr/%_lib/libsell.so

Hi
Have a read here;
https://en.opensuse.org/openSUSE:Shared_library_packaging_policy

You need to add %post and %postun with -p /sbin/ldconfig as well…

Thanks! I have build my package for many distribution. There’s still warning, but package was build. I don’t know, where should I put p switch. I have read manual page of ldconfig and it tells only p switch makes ldconfig more verbose. I inserted my .spec file below:


       **Name****:**           libsell 
**Version****:**        0.0.1 
**Release****:**        1 
**License****:****LGPL**-3.0 
**BuildRoot****:****%{****_tmppath****}**/libsell 
**Summary****:**        Simple extensible log library 
**Source****:**         libsell.tar.gz 

**%description**
Simple and extensible log library. Application can configure this library or order this library to read configuration variable called SELL_RULES. By setting SELL_RULES variable, u
ser can filter messages, selecting output files, etc. 

**%prep**
**%setup****-q**

**%build**
**make** %**{**?_smp_mflags**}**

**%install**
**mkdir****-p****$****RPM_BUILD_ROOT**/usr/**%****_lib**
**install****-m755****$****RPM_BUILD_DIR**/libsell-0.0.1/libsell.so.1.0 **$****RPM_BUILD_ROOT**/usr/**%****_lib**/libsell.so.1.0 
**install****-m755****$****RPM_BUILD_DIR**/libsell-0.0.1/libsell.so.1 **$****RPM_BUILD_ROOT**/usr/**%****_lib**/libsell.so.1 
**install****-m755****$****RPM_BUILD_DIR**/libsell-0.0.1/libsell.so.1.0.0 **$****RPM_BUILD_ROOT**/usr/**%****_lib**/libsell.so.1.0.0 

**%files**
**%defattr****(**-,**root**,**root)**
**%doc** LICENSE 
**/usr**/**%****_lib**/libsell.so.1.0 
**/usr**/**%****_lib**/libsell.so.1 
**/usr**/**%****_lib**/libsell.so.1.0.0 

**%post**
/sbin/ldconfig 

**%postun**
/sbin/ldconfig 

When my package will be searchable using software.opensuse.org?