compiling skstream library
  • I am trying to build skstream from skstream-0.3.6-1.src.rpm
    I have checked all the libraries and have them.
    I need skstream to compile eris-1.3.13-1.src.rpm.

    When I execute:
    rpm --rebuild skstream-0.3.6-1.src.rpm 

    These are the last lines:
    /home/admin/rpm/tmp/skstream-0.3.6-1-buildroot/usr/share/doc/skstream
    + exit 0
    Finding Provides: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/admin/rpm/tmp/skstream-0.3.6-1-buildroot' /usr/lib/rpm/mandriva/find-provides
    Finding Requires: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/admin/rpm/tmp/skstream-0.3.6-1-buildroot' /usr/lib/rpm/mandriva/find-requires /home/admin/rpm/tmp/skstream-0.3.6-1-buildroot x86_64
    Provides: libskstream-0.3.so.4()(64bit)
    Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
    Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) rtld(GNU_HASH)
    Processing files: skstream-devel-0.3.6-1
    Finding Provides: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/admin/rpm/tmp/skstream-0.3.6-1-buildroot' /usr/lib/rpm/mandriva/find-provides
    Finding Requires: /usr/lib/rpm/mandriva/filter.sh ' ' ' ' '/home/admin/rpm/tmp/skstream-0.3.6-1-buildroot' /usr/lib/rpm/mandriva/find-requires /home/admin/rpm/tmp/skstream-0.3.6-1-buildroot x86_64
    Provides: pkgconfig(skstream-0.3) = 0.3.6 pkgconfig(skstream-unix-0.3) = 0.3.6 devel(libskstream-0.3(64bit))
    Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(VersionedDependencies) <= 3.0.3-1
    Requires: devel(libgcc_s(64bit)) devel(libm(64bit)) devel(libstdc++(64bit)) pkgconfig
    Processing files: skstream-debug-0.3.6-1
    Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/admin/rpm/tmp/skstream-0.3.6-1-buildroot
    error: Installed (but unpackaged) file(s) found:
    /usr/share/doc/skstream-0.3.6/AUTHORS
    /usr/share/doc/skstream-0.3.6/COPYING
    /usr/share/doc/skstream-0.3.6/NEWS
    /usr/share/doc/skstream-0.3.6/README
    /usr/share/doc/skstream-0.3.6/README.FreeSockets


    RPM build errors:
    user ajr does not exist - using root
    group ajr does not exist - using root
    user ajr does not exist - using root
    group ajr does not exist - using root
    Installed (but unpackaged) file(s) found:
    /usr/share/doc/skstream-0.3.6/AUTHORS
    /usr/share/doc/skstream-0.3.6/COPYING
    /usr/share/doc/skstream-0.3.6/NEWS
    /usr/share/doc/skstream-0.3.6/README
    /usr/share/doc/skstream-0.3.6/README.FreeSockets


    Some help?
  • The rpm spec for skstream is pretty old, and it looks like it does not comply with more recent changes to the rpm tools. If you are familiar with rpm specs, you could unpack the source rpm, add the unpackaged files, and build the rpm. I will fix the rpm spec in cvs once I have access to a rpm based system. If you like you can file a bug on launchpad to track the issue.
  • I am going to try to do it. I am not a programmer.
    I am a designer, animatdor. This way that is going to be a bit difficult. But I am going to try.

    There is some another way of creating the devel?

    Thanks
  • I have treated, have searched, but nothing. I cannot find the error. Even I have compared with other spec that yes work.

    Well, might they help me?

    Thanks
  • I am completely unable to reproduce your bug on any of the systems I have access to. As far as I can see from my tests, the files in question are being installed, and are included in the spec. I can see no reason why the error you give should be generated, and it is not generated on any of my systems. What distribution are you building on? Please include as much version information as possible.
  • OK, I am using a Mandriva 2008 x64. AMD procesor 4GB of ram.
    I have tried to rebuild sktream to have the devel package. This one needed to compile eris.
    The idea of having the RPM was to have the package registered in the list of installed programs. And to have the possibility of installing it in PC others with the same characteristics. Not to have to be compiling in all.
    However much I have tried I could not have created the rpm.
    What if I could have done is to compile it from the sources. And to install it.

    Thanks
  • I can confirm this (also using Mandriva 2008.1 x86_64).
    The problem can be seen in this output from rpmbuild

    -snip-
    Kör(%doc): /bin/sh -e /home/erik/rpm/tmp/rpm-tmp.33965
    + umask 022
    + cd /home/erik/rpm/BUILD
    + cd skstream-0.3.6
    + DOCDIR=/home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream
    + export DOCDIR
    + rm -rf /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream
    + /bin/mkdir -p /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream
    + cp -pr README COPYING AUTHORS NEWS ChangeLog /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream
    + exit 0
    -snip-

    where it copies the docs files to usr/share/doc/skstream instead of usr/share/doc/skstream/0.3.6

    The result is this:

    $ ls -R /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/
    /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/:
    skstream/ skstream-0.3.6/

    /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream:
    AUTHORS ChangeLog COPYING NEWS README

    /home/erik/rpm/tmp/skstream-0.3.6-1-root/usr/share/doc/skstream-0.3.6:
    AUTHORS COPYING NEWS README README.FreeSockets


    I've tried with altering the spec-file by adding this to the top, to no avail

    %define docdir %{_datadir}/doc/skstream-%{version}
  • Perhaps you need to define _docdir ?

    We probably need to verify what the %doc is supposed to do in different versions of the rpm tools.
  • _docdir points to %{_datadir}/doc already, so it will still append the "skstream" directory.
    I did a quick search for how mandriva handles %doc but didn't find anything useful. I'll download some mandriva src.rpm files later this evening and take a look how it's used there.
  • Ok, it seems that %doc will use the name of the package, which is "skstream". By adding using "skstream-0.3.6" instead it works. Like this:

    @@ -2,6 +2,10 @@
    %define version 0.3.6
    %define release 1
    %define libsuffix -0.3
    +%define lib_name %{name}-%{version}
    +
    +#%define fsdfsddocdir %{_datadir}/doc/skstream-%{version}
    +

    Summary: An iostream socket library.
    Name: %{name}
    @@ -20,6 +24,14 @@
    %{name} is an iostream based socket library in C++. It is based on
    the Freesockets library, and has been packaged for use by WorldForge.

    +%package -n %{lib_name}
    +Group: System Environment/Libraries
    +Summary: An iostream socket library.
    +
    +%description -n %{lib_name}
    +%{name} is an iostream based socket library in C++. It is based on
    +the Freesockets library, and has been packaged for use by WorldForge.
    +
    %package devel
    Summary: An iostream socket library headers and static libs.
    Group: Development/Libraries
    @@ -43,8 +55,8 @@
    %clean
    rm -rf $RPM_BUILD_ROOT

    -%files
    -%defattr(-,root,root)
    +%files -n %{lib_name}
    +%defattr(-,root,root,-)
    %{_libdir}/lib*.so.*
    %doc README COPYING AUTHORS NEWS ChangeLog


    The resulting rpm is called skstream-0.3.6-0.3.6-1.x86_64.rpm however

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google Sign In with OpenID