[Bug 450409] Review Request: rcssserver3d - Robocup Soccer Simulation Server 3D

bugzilla at redhat.com bugzilla at redhat.com
Mon Jun 23 18:59:44 UTC 2008


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.

Summary: Review Request: rcssserver3d - Robocup Soccer Simulation Server 3D


https://bugzilla.redhat.com/show_bug.cgi?id=450409





------- Additional Comments From mtasaka at ioa.s.u-tokyo.ac.jp  2008-06-23 14:59 EST -------
Please change the release number every time you modify your spec
file.

For 0.6-0.1:
* Source files
  - %SOURCE0 included in your srpm differs from what I can download
    from the URL as written

  - Please write the full URL of (or how you received) %SOURCE1

* BuildRequires
  - Some BuildRequires are redundant
    https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
  - Also you are writing mesa-libGL-devel twice.
    BTW please use 'libGL-devel' instead of mesa-libGL-devel.

* Requires
  - When adding Ruby to Requires, also ruby(abi) Requires must be
    added:
    https://fedoraproject.org/wiki/Packaging/Ruby

* Requires for -devel subpackage
  - Please investigate and add proper Requires for -devel subpackage.
    For example, rcssserver3d/zeitgeist/parameterlist.h contains:
---------------------------------------------------------------
    24  
    25  #include <boost/any.hpp>
    26  #include <vector>
---------------------------------------------------------------
    This means that rcsssserver3d-devel should have
    "Requires: boost-devel"

* Redundant description
  - Please remove all SUSE related description. This just makes
    your spec file complicated unneededly.

* %vendor macro
---------------------------------------------------------------
%define         vendor fedora
---------------------------------------------------------------
  - You must not define %vendor macro. This macro overrides
    "Vendor:" value on "rpm -qi", where Fedora uses "Fedora Project"
    by default.

* Subpackages having different version from main package
----------------------------------------------------------------
Version:        1.1
----------------------------------------------------------------
  - We don't allow that subpackages has different version from
    main package but for some exception (like perl, texlive).

* %prep vs %build
----------------------------------------------------------------
autoreconf --install
chmod a-x app/simspark/rsg/agent/nao/*
find -name "*.cpp" -exec chmod a-x {} \;
find -name "*.h" -exec chmod a-x {} \;
----------------------------------------------------------------
  - Please move all to %prep.

* Timestamps
  - As this package installs many files which are not modified
    during build, please use
----------------------------------------------------------------
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" CPPROG="cp -p"
----------------------------------------------------------------
    to keep timestamps on installed files.
    The method 'INSTALL="install -p"' usually works for recent 
    autotool-based Makefiles.
    And sometimes 'CPPROG="cp -p"' is needed for some old packages
    using install-sh for installing files

  - Also, when using "install" or "cp" commands, add "-p" option.

* Desktop file Category
  - "X-Red-Hat-Base" is deprecated and should not be added any longer.

* ld.so.conf.d
----------------------------------------------------------------
%{_sysconfdir}/ld.so.conf.d/%{name}.conf
----------------------------------------------------------------
  ! Please don't add this. 
    All files under %{_libdir}/%{name} are used only for this package
    and making those libraries system wide is undesirable unless it is
    actually intended.
    And this actually causes problem as
    - Fedora ships tinyxml, which provides libtinyxml.so.0 
      (and installs this library under %{_libdir}), and some
      rpms require this library.
    - However when this ld.so.conf file is added, all binaries requiring
      libtinyxml.so.0 finds the libraries under %{_libdir}/%{name}/
      first and tries to use it, not %{_libdir}/libtinyxml.so
    For example, when you install rcssserver3d and cegui,
    The following happen:
----------------------------------------------------------------
[tasaka1 at localhost ~]$ ldd -r /usr/lib/libCEGUITinyXMLParser-0.6.0.so
        linux-gate.so.1 =>  (0x00110000)
        libCEGUIBase-0.6.0.so => /usr/lib/libCEGUIBase-0.6.0.so (0x00117000)
        libtinyxml.so.0 => /usr/lib/rcssserver3d/libtinyxml.so.0 (0x00377000)
<======
        libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x0038a000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00763000)
        libdl.so.2 => /lib/libdl.so.2 (0x0077d000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00782000)
        libm.so.6 => /lib/libm.so.6 (0x00874000)
        libc.so.6 => /lib/libc.so.6 (0x0089d000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00a3d000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00a4b000)
        libpcre.so.0 => /lib/libpcre.so.0 (0x00ade000)
        /lib/ld-linux.so.2 (0x00a1b000)
undefined symbol: _ZNK13TiXmlDocument6AcceptEP12TiXmlVisitor   
(/usr/lib/libCEGUITinyXMLParser-0.6.0.so)
undefined symbol: _ZN13TiXmlDocument8StreamInEPSiPSs   
(/usr/lib/libCEGUITinyXMLParser-0.6.0.so)
----------------------------------------------------------------
     The expected result is:
----------------------------------------------------------------
[tasaka1 at localhost ~]$ ldd -r /usr/lib/libCEGUITinyXMLParser-0.6.0.so
        linux-gate.so.1 =>  (0x00110000)
        libCEGUIBase-0.6.0.so => /usr/lib/libCEGUIBase-0.6.0.so (0x00117000)
        libtinyxml.so.0 => /usr/lib/libtinyxml.so.0 (0x00377000)
        libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0x0038e000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00767000)
        libdl.so.2 => /lib/libdl.so.2 (0x00781000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00786000)
        libm.so.6 => /lib/libm.so.6 (0x00878000)
        libc.so.6 => /lib/libc.so.6 (0x008a1000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00a3d000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7fd1000)
        libpcre.so.0 => /lib/libpcre.so.0 (0xb7fa6000)
        /lib/ld-linux.so.2 (0x00a1b000)
---------------------------------------------------------------
    Also, shipping libtinyxml.so.0 in the current way is causing
    a problem on rpm system anyway because on rpm rcssserver3d package
    also "Provides" libtinyxml.so.0. 
    This means that (for example) cegui can be installed without 
    tinyxml package if rcssserver3d is installed, while tinyxml 
    package is actually needed for cegui, which of course cause a 
    problem (you can try this).

    So you must follow below:
    - Please remove %{name}.conf file under %_sysconfdir/ld.so.conf.d
    - Check if system wide libtinyxml.so provided by tinyxml package
      can substitute for %{_libdir}/%{name}/libtinyxml.so.0
      (by adding patches)
    - If it seems difficult, filter out libtinyxml.so.0 from Requires/
      Provides following
      http://fedoraproject.org/wiki/PackagingDrafts/FilteringAutomaticDependencies
      (some explanation are written on
      http://www.redhat.com/archives/fedora-maintainers/2007-June/msg00690.html )

    - Remove "--disable-rpath" from %configure option.
      Well, actually the reason you had to add ld.so.conf.d file was
      because you removed the *needed rpath* %{_libdir}/%{name}.
    - Then calling /sbin/ldconfig on scriptles should be no longer needed.


-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the Fedora-package-review mailing list