This service will be undergoing maintenance at 00:00 UTC, 2016-09-28. It is expected to last about 1 hours
Bug 825409 - (gazebo) Review Request: gazebo - 3D multi-robot simulator with dynamics
Review Request: gazebo - 3D multi-robot simulator with dynamics
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Scott K Logan
Fedora Extras Quality Assurance
:
: 725752 (view as bug list)
Depends On: 817193 871205 972480 998141
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-25 20:56 EDT by Rich Mattes
Modified: 2014-08-01 19:54 EDT (History)
10 users (show)

See Also:
Fixed In Version: gazebo-3.0.0-5.fc20
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-08-01 19:54:39 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
logans: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)
buildlog (2.83 MB, text/x-log)
2013-12-25 20:16 EST, solanum
no flags Details
Gazebo desktop file and icon (2.28 KB, patch)
2014-01-25 22:40 EST, Scott K Logan
no flags Details | Diff
Exclude s390(x) (1.32 KB, patch)
2014-07-22 04:13 EDT, Jakub Čajka
no flags Details | Diff

  None (edit)
Description Rich Mattes 2012-05-25 20:56:01 EDT
Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.0.1-1.fc17.src.rpm

Description: 
Gazebo is a multi-robot simulator for outdoor environments. It is capable of
simulating a population of robots, sensors and objects in a three-dimensional
world. It generates both realistic sensor feedback and physically plausible
interactions between objects.  It includes an accurate simulation of rigid-body
physics.

Fedora Account System Username: rmattes

rpmlint:  
$ rpmlint gazebo.spec ../RPMS/x86_64/gazebo-*
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.1.0.1 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzclient
gazebo.x86_64: W: no-manual-page-for-binary gzstats-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzsensor-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver
gazebo.x86_64: W: no-manual-page-for-binary gzphysics
gazebo.x86_64: W: no-manual-page-for-binary sdf2pov-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzphysics-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo
gazebo.x86_64: W: no-manual-page-for-binary gzfactory
gazebo.x86_64: W: no-manual-page-for-binary gzmaster
gazebo.x86_64: W: no-manual-page-for-binary sdf2pov
gazebo.x86_64: W: no-manual-page-for-binary gzsdf
gazebo.x86_64: W: no-manual-page-for-binary gztopic-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzsensor
gazebo.x86_64: W: no-manual-page-for-binary gzstats
gazebo.x86_64: W: no-manual-page-for-binary gzmaster-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gzclient-1.0.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/src/physics/ScrewJoint.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/plugins/RayPlugin.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/src/rendering/Projector.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/plugins/RayPlugin.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/src/rendering/Projector.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/plugins/ContactPlugin.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/plugins/ContactPlugin.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/src/physics/ode/ODEScrewJoint.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.0.1/src/physics/ode/ODEScrewJoint.hh
gazebo-devel.x86_64: W: no-documentation
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.0.1/gazebo/rendering/Projector.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.0.1/gazebo/physics/ScrewJoint.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.0.1/gazebo/plugins/ContactPlugin.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.0.1/gazebo/plugins/RayPlugin.hh
3 packages and 1 specfiles checked; 13 errors, 26 warnings.
Comment 1 Rich Mattes 2012-05-25 20:56:30 EDT
*** Bug 725752 has been marked as a duplicate of this bug. ***
Comment 2 Rich Mattes 2012-05-25 21:07:46 EDT
I wanted to get the ball rolling with this review, but there are still a couple of issues that need to be worked out:


1) Gazebo bundles its own version of the "ode" package, with some modifications.  I have been in contact with upstream[1], it looks like the ode upstream maintainers have not accepted any patches from gazebo, which forced gazebo to bundle a modified copy of the library.  If we can update ode to the latest version in fedora(contingent on issues 2 and 3 in this bug), we might be able to carry some patches.  Otherwise, i'll seek a bundled library exception with the FPC.


2) Gazebo depends on libccd, which is required for the bundled ODE.  It's also needed the latest upstream version of ODE, which Fedora does not yet have. I have a libccd package review, I've set the Depends field in bugzilla accordingly.


3) Gazebo bundles a copy of boost threadpool[2], also required by the bundled and latest upstream ODE releases.  I don't know if this is something that should be included in fedora's boost package or created as a separate review request, but I'm willing to try packaging it if the latter is necessary.


[1] http://kforge.ros.org/pipermail/gazebo-list/2012-May/003944.html
[2] http://threadpool.sourceforge.net
Comment 3 Rich Mattes 2012-10-29 18:37:51 EDT
Updated to release 1.2.5

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.2.5-1.fc17.src.rpm

It's managed to grow dependencies on some external URDF tools, which I've also submitted for review.
Comment 4 Sébastien Boisvert 2012-11-04 02:52:43 EST
This is an informal review as I am not sponsored yet.

> Patch0:         %{name}-1.2.2-fedora.patch
> Patch1:         %{name}-1.0.1-playerdir.patch
> BuildRequires:  boost-devel
> BuildRequires:  cegui-devel

Add a new line between the Patch1 line and the first BuildRequires line.

> %description devel
> The %{name}-devel package contains libraries and header files for
> developing applications that use %{name}

Add a '.' at the end of the description.

> %package playerplugin

Maybe name that player-plugin ?

See http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators

> rm -rf $RPM_BUILD_ROOT

You must stick to macros.
Use %{buildroot}. See http://fedoraproject.org/wiki/Packaging:Guidelines#Using_.25.7Bbuildroot.7D_and_.25.7Boptflags.7D_vs_.24RPM_BUILD_ROOT_and_.24RPM_OPT_FLAGS

> %global abiversion 1.2

How tightly coupled is the ABI version to the upstream version ?

> Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec

$ rpmlint -i gazebo.spec 
gazebo.spec: W: patch-not-applied Patch1: %{name}-1.0.1-playerdir.patch
A patch is included in your package but was not applied. Refer to the patches
documentation to see what's wrong.

0 packages and 1 specfiles checked; 0 errors, 1 warnings.

> SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.2.5-1.fc17.src.rpm

I can not find some dependencies. Are they under review ? If so, can you provide the buzilla entries ? Or are they in rpmfusion ?

$ pwd
/home/seb/rpmbuild/SPECS

$ rpmbuild -ba gazebo.spec 
error: Failed build dependencies:
	console-bridge-devel is needed by gazebo-1.2.5-1.fc17.x86_64
	libccd-devel is needed by gazebo-1.2.5-1.fc17.x86_64
	urdfdom-headers-devel is needed by gazebo-1.2.5-1.fc17.x86_64
	urdfdom-devel is needed by gazebo-1.2.5-1.fc17.x86_64

[root@panic SPECS]# yum install -y console-bridge-devel libccd-devel urdfdom-headers-devel urdfdom-devel
Loaded plugins: langpacks, presto, refresh-packagekit
No package console-bridge-devel available.
No package libccd-devel available.
No package urdfdom-headers-devel available.
No package urdfdom-devel available.
Error: Nothing to do
Comment 5 Rich Mattes 2013-01-17 00:38:12 EST
Thanks for looking at the package, and sorry for taking so long to reply.

(In reply to comment #4)
> This is an informal review as I am not sponsored yet.
> 
> > Patch0:         %{name}-1.2.2-fedora.patch
> > Patch1:         %{name}-1.0.1-playerdir.patch
> > BuildRequires:  boost-devel
> > BuildRequires:  cegui-devel
> 
> Add a new line between the Patch1 line and the first BuildRequires line.
> 

Cosmetic, but reasonable.  Done.

> > %description devel
> > The %{name}-devel package contains libraries and header files for
> > developing applications that use %{name}
> 
> Add a '.' at the end of the description.
> 

Done.

> > %package playerplugin
> 
> Maybe name that player-plugin ?
> 
> See http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Separators
> 

I named it "playerplugin" to stay consistent with the Stage package.  The separators guidelines are more for keeping underscores out of package names, they don't say much about when to use dashes

> > rm -rf $RPM_BUILD_ROOT
> 
> You must stick to macros.
> Use %{buildroot}. See
> http://fedoraproject.org/wiki/Packaging:Guidelines#Using_.25.7Bbuildroot.
> 7D_and_.25.7Boptflags.7D_vs_.24RPM_BUILD_ROOT_and_.24RPM_OPT_FLAGS
> 

RPM_BUILD_ROOT and %{buildroot} are interchangable.  The guidelines don't prefer one over the other, they just prefer that you pick one and stick with it.  
From the linked page:
"There is very little value in choosing one style over the other, since they will resolve to the same values in all scenarios. You should pick a style and use it consistently throughout your packaging. "

> > %global abiversion 1.2
> 
> How tightly coupled is the ABI version to the upstream version ?
> 

The abiversion is the first two parts of the release number.  I defined it for convenience for the %files section, since gazebo likes to create folders called gazebo-%{abiversion}

> > Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
> 
> $ rpmlint -i gazebo.spec 
> gazebo.spec: W: patch-not-applied Patch1: %{name}-1.0.1-playerdir.patch
> A patch is included in your package but was not applied. Refer to the patches
> documentation to see what's wrong.
> 
> 0 packages and 1 specfiles checked; 0 errors, 1 warnings.
> 

Fixed.

> > SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.2.5-1.fc17.src.rpm
> 
> I can not find some dependencies. Are they under review ? If so, can you
> provide the buzilla entries ? Or are they in rpmfusion ?
> 

They are under review.  See the "Depends On" section at the top of the bug.  There are links to the packages under review.


I've got an updated SRPM with the latest version of gazebo:

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.3.1-1.fc18.src.rpm

rpmlint is still messy.  The rpath issue should fix itself once ode is unbundled, and the FSF issues are coming from another bundled library (skyx).
$ rpmlint gazebo.spec ../RPMS/x86_64/gazebo-*1.3.1* ../RPMS/noarch/gazebo-*1.3.1*
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.1.3.1 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzmaster
gazebo.x86_64: W: no-manual-page-for-binary gzstats
gazebo.x86_64: W: no-manual-page-for-binary gzstats-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzclient-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver
gazebo.x86_64: W: no-manual-page-for-binary gzphysics
gazebo.x86_64: W: no-manual-page-for-binary gzsensor
gazebo.x86_64: W: no-manual-page-for-binary gzclient
gazebo.x86_64: W: no-manual-page-for-binary gztopic
gazebo.x86_64: W: no-manual-page-for-binary gzserver-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzphysics-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzsensor-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create.sh
gazebo.x86_64: W: no-manual-page-for-binary gazebo-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gzmaster-1.3.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo
gazebo.x86_64: W: no-manual-page-for-binary gzfactory
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-1.3.1
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/physics/bullet/BulletScrewJoint.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/SkyX.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/ColorGradient.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/GeometryBlock.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/BasicController.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/LightningManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/CloudsManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/physics/ode/ODEScrewJoint.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/physics/ode/ODEScrewJoint.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/LightningManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/GeometryManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/RayPlugin.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/Lightning.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/MeshManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/RayPlugin.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/ContactPlugin.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/AtmosphereManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/ColorGradient.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/Lightning.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/DataManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/AtmosphereManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/DataManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/GeometryManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/GPUManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/Prerequisites.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/Projector.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/VClouds.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/FastFakeRandom.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/Projector.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/GPUManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/MoonManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/VClouds.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/MeshManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/Ellipsoid.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/BasicController.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/FastFakeRandom.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/MoonManager.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VClouds/Ellipsoid.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/JointTrajectoryPlugin.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/SkyX.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/VCloudsManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VClouds/GeometryBlock.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/Controller.h
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/src/CloudsManager.cpp
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/JointTrajectoryPlugin.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/plugins/ContactPlugin.cc
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/physics/bullet/BulletScrewJoint.hh
gazebo-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/gazebo-1.3.1/gazebo/rendering/skyx/include/VCloudsManager.h
gazebo-devel.x86_64: W: no-documentation
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.3/gazebo/plugins/JointTrajectoryPlugin.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.3/gazebo/rendering/Projector.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.3/gazebo/plugins/ContactPlugin.hh
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo_transport.pc lines ['9']
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo.pc lines ['9']
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.3/gazebo/gazebo_core.hh
gazebo-devel.x86_64: E: incorrect-fsf-address /usr/include/gazebo-1.3/gazebo/plugins/RayPlugin.hh
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo_ode.pc lines ['9']
gazebo-playerplugin.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Ground.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Lightning.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Skydome.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Clouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Skydome.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Skydome.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Clouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Ground.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Ground.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds_Lightning.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Clouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Moon.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_VolClouds_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Moon.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX_Moon.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-1.3/media/skyx/SkyX.material
6 packages and 1 specfiles checked; 78 errors, 27 warnings.



The real issue is that it's still bundling ode, and the bundled version is different than the system version.  I'm still working on this.  The other dependencies in comment 2 are resolved.

I also found two new bundled libraries:  skyx and qtpropertybrowser.  I'll keep working on those while the other blocker packages are reviewed.
Comment 6 Rich Mattes 2013-03-20 23:16:30 EDT
Rebased to release 1.5.0, bundled libs still not fixed

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-1.5.0-1.fc18.src.rpm
Comment 8 Mario Ceresa 2013-08-16 07:26:56 EDT
Hello Rich,
thanks for your efforts in packaging gazebo!

I had two problems in building it from the srpm:

* Missing BR for libtar-devel 
* urdfdom-devel does not exists. In fact the only package that exists is urdfdom-headers-devel. However cmake still complains that it does not found urdf_parser.h and that the parser won't be built.

Miscellaneous thoughts:
* Why did you disabled the %{?_smp_mflags} flag? It does work in my build.
* I see that gazebo can use bullet and the support seems in good state:
http://gazebosim.org/wiki/Tutorials/1.9/bullet
Maybe you could just support only bullet physics and so get rid of the last bundled lib?
* Last version is 1.9 :)

Best,

Mario
Comment 9 Christopher Meng 2013-08-16 08:59:29 EDT
> Maybe you could just support only bullet physics and so get rid of the last
> bundled lib?

Why? Fedora package's should support all features without problems.
Comment 10 Mario Ceresa 2013-08-17 05:26:01 EDT
Because Rich was saying that the bundled ODE is not easily to remove and should ask for an exception
Comment 11 Christopher Meng 2013-08-17 05:43:02 EDT
(In reply to Mario Ceresa from comment #10)
> Because Rich was saying that the bundled ODE is not easily to remove and
> should ask for an exception

Ticket? 

Status? 

I can't find.
Comment 12 Rich Mattes 2013-08-17 12:47:41 EDT
The ticket for a bundling exception is filed at https://fedorahosted.org/fpc/ticket/317, I should have included it in this review request earlier.

As far as the other comments go, urdfdom-devel does exist, it just hasn't been reviewed yet.  This bug has a dependency on the urdfdom review bug.

I run into intermittent problems when building large projects on my laptop, so I tend to disable the smp flags until i upload the srpm, I guess I forgot to do that this time.  It was just an oversight.

The bullet support is in good shape, but it is still missing a lot of features according to the above link.  I don't think the support is far enough along to warrant shipping with bullet only.  

Version 1.9 is out and requires a couple of other libraries to be accepted into fedora (sdformat and SkyX) which are currently under review.  I'll work on updating the gazebo package as well.
Comment 13 Mario Ceresa 2013-08-19 06:28:41 EDT
Hi Rich, thanks for your comments. I didn't notice the dependency. I'm reviewing urdfdom right now.

I think that, in order not to delay the package too much, it's okay if you ship 1.8.1 and then upgrade to 1.9 when the other libraries are approved as well. Let's see what Christopher thinks about that.
Comment 14 Rich Mattes 2013-08-19 20:35:02 EDT
I think that's reasonable.  For what it's worth, I've almost got gazebo 1.9 building.  Gazebo made a few changes to the version of SkyX they're bundling, so I'll have to patch SkyX once it gets into Fedora to make it work with Gazebo (the changes don't look like very much; definitely not on the order of the ODE changes.)
Comment 15 Mario Ceresa 2013-10-02 09:35:04 EDT
Hi Rich, Christopher,
this is just a follow up: how is everything going with gazebo 1.9? Is there something I could do to speed up the review?

Thanks and regards,

Mario
Comment 16 Rich Mattes 2013-10-06 15:05:34 EDT
I'm working on getting gazebo 2.0.0 packaged now.  I've updated the blocker list to include SkyX and sdformat.  The blocker packages all need to be reviewed before this review can continue.  Additionally, I need to get an answer for the bundling exception from the fpc as per comment 12.

The best way to speed things up is to get the blocker packages reviewed.  They're all assigned to Christopher, but there haven't been many updates in the past month or so.  You could maybe ping on those bugs and ask to take over some reviews.
Comment 17 Christopher Meng 2013-10-07 08:16:49 EDT
I will leave this review to others.
Comment 18 Rich Mattes 2013-10-19 22:58:03 EDT
Update to release 2.0.0.  Still working on some of the rpmlint errors, but I wanted to get this up in the meantime.

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-2.0.0-1.fc19.src.rpm

rpmlint:
$ rpmlint gazebo.spec ~/gazebo-*
gazebo.spec:149: E: hardcoded-library-path in $RPM_BUILD_ROOT/usr/lib/pkgconfig
gazebo.spec: W: invalid-url Source0: http://gazebosim.org/assets/distributions/gazebo-2.0.0.tar.bz2 HTTP Error 404: Not Found
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.src:149: E: hardcoded-library-path in $RPM_BUILD_ROOT/usr/lib/pkgconfig
gazebo.src: W: invalid-url Source0: http://gazebosim.org/assets/distributions/gazebo-2.0.0.tar.bz2 HTTP Error 404: Not Found
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.2.0.0 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo-devel.x86_64: W: no-documentation
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo_transport.pc lines ['9']
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo.pc lines ['9']
gazebo-devel.x86_64: E: rpath-in-buildconfig /usr/lib64/pkgconfig/gazebo_ode.pc lines ['9']
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Ground.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX.material
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Skydome.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Clouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Lightning.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Skydome.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Skydome.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Moon.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Clouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Ground.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Ground.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Moon.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Clouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_Moon.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.0/media/skyx/SkyX_VolClouds_Lightning.hlsl
gazebo-playerplugin.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 27 errors, 19 warnings.
Comment 19 solanum 2013-12-24 11:16:51 EST
I understand this might not be relevant to this thread. 

I set up mock in F20 x86_64, the 2.0.0 srpm provided got hung on the documention, which are bugs fixed in the 2.1.0 release (which was pointed out in the previous bug report.) I rolled the gazebo-current-2.1.0.tar.bz2 file, into your srpm, (leaving the patch) and it went almost all the way through the build process. It got hung on. 
test/integration/CMakeFiles/INTEGRATION_contact_sensor.dir/contact_sensor.cc.o

CMakeFiles/INTEGRATION_contact_sensor.dir/contact_sensor.cc.o: file not recognized: File truncated


Removing
build/test/integration/CMakeFiles/INTEGRATION_contact_sensor.dir/contact_sensor.cc.o
and running make manually inside the mock chroot, and the build completed. 

I didn't pursue why it was truncated. 

I haven't tried to put the ros gazebo 1.9.x version in your srpm to see if that has better luck. 

But just thought I would pass that info on, before it gets lost in the holiday mess. :)
Comment 20 solanum 2013-12-25 20:16:27 EST
Created attachment 841683 [details]
buildlog
Comment 21 solanum 2013-12-25 21:00:57 EST
It built fine, using: 
mock -r fedora-20-x86_64 --disable-plugin=ccache --rebuild SRPMS/gazebo-2.1.0-1.fc20.src.rpm

ccache doesn't appear to be doing the right thing. 

The docs crashed the build, so I guess that is no better then 2.0.0, but it should produce a usable binary if you skip the docs which is the same as 2.0.0..
Comment 22 solanum 2014-01-01 12:50:54 EST
Increasing the number of times Latex reruns fixes the doc problem but it is higher then 8 which is the doxygen default for the new version (1.8.6). The old version (1.8.5 which is in F20) defaults to 5.
Comment 23 Rich Mattes 2014-01-05 15:46:13 EST
Sorry for the delay, I've been on vacation for the past couple of weeks.  I was able to start working on the package again today.  The pointer for number of latex runs was helpful, I was able to patch the CMakeLists.txt file to ignore the error on the first run of doxygen then re-run with a larger number of passes until the cross-references settle.  

The new spec and srpm are at:
Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-2.1.0-1.fc20.src.rpm

rpmlint:
$ rpmlint gazebo.spec ./fedora-20-x86_64/gazebo-2.1.0-1.fc20/*.rpm
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.2.1.0 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.1.0
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo-devel.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Skydome.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Clouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds_Lightning.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX.material
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Moon.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Clouds.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Moon.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Ground.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds_Lightning.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Lightning.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Skydome.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Ground.vertex
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Moon.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Ground.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds.hlsl
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_VolClouds_Lightning.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Clouds.fragment
gazebo-media.noarch: E: incorrect-fsf-address /usr/share/gazebo-2.1/media/skyx/SkyX_Skydome.vertex
gazebo-playerplugin.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 22 errors, 17 warnings.


scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6362361

I'm still looking into the unit test failures. Some of them look like they can be fixed by sourcing the setup.sh file in /usr/share/gazebo
Comment 24 Scott K Logan 2014-01-25 22:40:31 EST
Created attachment 855615 [details]
Gazebo desktop file and icon

Rich -

It would be great to see a desktop file and icon installed with the binary. Something like the attached patch should do the trick.

Thanks for getting to this! I hope it is in the repositories soon!
Comment 25 Scott K Logan 2014-01-25 22:52:22 EST
Another note: I just found that nothing can build against the gazebo-devel package because of the gazebo_ccd workaround you included in the gazebo-2.0.0-fedora.patch.

The issue is that /usr/share/gazebo/cmake/gazebo-config.cmake contains a reference to gazebo_ccd and won't build because the library never made it onto the system.

Thanks,

--scott
Comment 26 Scott K Logan 2014-01-25 23:31:13 EST
Sorry for the rush of comments, but there are more build problems. I'll try to make this the last one.

A)
Looks like Skyx has a similar workaround, and needs to be removed from gazebo-config.cmake like gazebo_ccd.

B)
It is not currently possible to get libgazebo_player.so installed (not included in gazebo-devel, no gazebo-playerplugin-devel package). I would suggest that gazebo-devel be dependent on gazebo-playerplugin, and that gazebo-devel include libgazebo_player.so.

C)
I think that gazebo-devel should be dependent on protobuf-devel and sdformat-devel, as /usr/share/gazebo/cmake/gazebo-config.cmake seems to look for them.

The header files also reference freeimage-devel, tbb-devel and cegui-devel include files, so again, compiling against gazebo-devel is not possible without these installation dependencies.

Thanks,

--scott
Comment 27 Rich Mattes 2014-02-08 17:39:24 EST
Thanks for the comments.  Updated packages are at

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-2.2.1-1.fc20.src.rpm


I've added the fixes for libgazebo_ccd and libgazebo_skyx in the gazebo cmake config file.  I've also fixed libgazebo_player to get rid of the library versioning, it installs as libdir/player/libgazebo_player.so.  

You are right about the gazebo-devel package requiring other devel packages if gazebo's headers include headers from other libraries, so I added the ones you called out.

I also added the desktop file and icon based on the patches you submitted (I changed them a little bit to comply with the packaging guidelines sections on icons and desktop files.)  I'm able to run gazebo from gnome as soon as gazebo is installed in f20.

I also updated to the latest upstream release (2.2.1) and included some patches that were needed to get gazebo to build on ARM.

$ rpmlint gazebo.spec ./fedora-20-x86_64/gazebo-2.2.1-1.fc20/*.rpm
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.2.2.1 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.2.1
gazebo-devel.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-relative-symlink /usr/share/gazebo-2.2/media/skyx ../../SKYX/Media/SkyX
gazebo-playerplugin.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 0 errors, 18 warnings

scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6508072
Comment 28 Scott K Logan 2014-02-08 19:47:18 EST
Thanks for updating the package, Rich. Great progress!

I've got a couple more notes:

A)
Having the gazebo_player library unversioned is definitely a step in the right direction. This way it matches the existing player plugins. However, the real problem is that gazebo-config.cmake is still looking for it, and fails to build when it can't find it in /usr/lib64. The only logical course of action (in my mind) is to add %{_libdir}/player to the library search path at cmake/gazebo-config.cmake.in:18 AND make gazebo-devel depend on gazebo-playerplugin (so the library is installed). The only alternative is to remove gazebo_player from gazebo-config.cmake after it is generated.

B)
I've had trouble viewing the gazebo icon in gnome on some machines because it is not square. I've narrowed it down to machines that have the AMD proprietary driver installed on them. They simply do not display an icon if it is not square.

To solve this, I've changed the svg file to make it square, and shifted the viewport to the original size. This seems to be viewable on all of the systems I've tried. To do this easily, I've written the following sed command to be used instead of the cp command in the %install section of the spec:

sed 'N; s/width="\([0-9\.]*\)"\n\([ ]*\)height="\([0-9\.]*\)"/width="\3"\n\2height="\3"\n\2viewBox="0 0 \1 \3"/' \
    gazebo/gui/images/gazebo.svg > %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg

This should continue to function even if the svg image's dimensions change upstream, and will ensure that all machines can see the icon as intended.

Thanks for your hard work getting this massive package working!

--scott
Comment 29 Rich Mattes 2014-02-11 20:37:13 EST
Thanks Scott.

The Player library shouldn't be on that list at all; it's a private plugin library that Player dlopens, nobody should be linking against it.  So I've removed it, and I'll file a bug upstream.

Wow, that svg issue is pretty goofy.  I've added your sed command to the spec.

The updated package is at:
Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-2.2.1-2.fc20.src.rpm

rpmlint:
$ rpmlint gazebo.spec ./fedora-20-x86_64/gazebo-2.2.1-2.fc20/*.rpm
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.2.2.1 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.2.1
gazebo-devel.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-symlink /usr/share/gazebo-2.2/media/skyx /usr/share/SKYX/Media/SkyX
gazebo-playerplugin.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 0 errors, 18 warnings.

scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6519585
Comment 30 Tim Niemueller 2014-05-14 12:29:42 EDT
We've been using the package for a while now and it works like a charm. We'd really like to see this included to make it easy for everybody to use. Scott, do you want to proceed with the review?
Comment 31 Scott K Logan 2014-05-14 13:20:25 EDT
Tim,

I would be happy to review this package. I'll try to take a look tonight. Thanks for testing this package! I'm excited to see this brought into Fedora proper.

--scott
Comment 32 Scott K Logan 2014-05-16 01:08:04 EDT
Okay, I've completed the package review. This is a MASSIVE package, and I
applaud your efforts, Rich. Nonetheless, There are a few things that should
be addressed before this package is approved.

Notes:
- Is there a reason that you are not using the %cmake macro in the %build
  section? This will set many of the manually defined cmake variables,
  including CMAKE_INSTALL_PREFIX, which should otherwise be %{_prefix}, not
  `/usr`.
- Any reason not to pass %{?_smp_mflags} to `make doc`? Maybe it can take
  advantage of threading...
- Unversioned .so files are in non-devel package, but these are plugins and
  are in a private directory that is not in the ld path, so this is okay.
- There are several bundled fonts in gazebo-media [1]. This should be addressed.
- Gazebo 3.0 has been released. Is there an argument that Fedora 19/20 should
  have 2.2 instead?

Thanks,

--scott

[1] http://fedoraproject.org/wiki/Packaging:FontsPolicy



Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Apache (v2.0)", "BSL (v1.0)", "LGPL (v2 or later) (with incorrect FSF
     address)", "Unknown or generated", "BSD (3 clause)". 283 files have
     unknown license. Detailed output of licensecheck in
     /home/cottsay/825409-gazebo/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/share/icons/hicolor/scalable/apps, /usr/share/icons/hicolor,
     /usr/share/icons/hicolor/scalable
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: gtk-update-icon-cache is invoked in %postun and %posttrans if package
     contains icons.
     Note: icons in gazebo
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 3 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the license(s)
     in its own file, then that file, containing the text of the license(s)
     for the package is included in %doc.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package contains desktop file if it is a GUI application.
[x]: Package installs a %{name}.desktop using desktop-file-install or desktop-
     file-validate if there is such a file.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Uses parallel make %{?_smp_mflags} macro.
[!]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in gazebo-
     media , gazebo-doc
[x]: Package functions as described.
[!]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[?]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: gazebo-2.2.1-2.fc20.x86_64.rpm
          gazebo-devel-2.2.1-2.fc20.x86_64.rpm
          gazebo-media-2.2.1-2.fc20.noarch.rpm
          gazebo-playerplugin-2.2.1-2.fc20.x86_64.rpm
          gazebo-doc-2.2.1-2.fc20.noarch.rpm
          gazebo-2.2.1-2.fc20.src.rpm
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.2.2.1 exit@GLIBC_2.2.5
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.2.1
gazebo-devel.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-symlink /usr/share/gazebo-2.2/media/skyx /usr/share/SKYX/Media/SkyX
gazebo-playerplugin.x86_64: W: no-documentation
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
6 packages and 0 specfiles checked; 0 errors, 18 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint gazebo-doc gazebo-media gazebo gazebo-playerplugin gazebo-devel
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-symlink /usr/share/gazebo-2.2/media/skyx /usr/share/SKYX/Media/SkyX
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
...
gazebo.x86_64: W: unused-direct-shlib-dependency ...MANY OF THESE
...
gazebo.x86_64: W: undefined-non-weak-symbol ...MANY OF THESE
...
gazebo.x86_64: W: unused-direct-shlib-dependency ...
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzstats-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzserver-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gztopic-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gazebo-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzlog-2.2.1
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gzclient-2.2.1
gazebo-playerplugin.x86_64: W: no-documentation
gazebo-devel.x86_64: W: no-documentation
5 packages and 0 specfiles checked; 0 errors, 1355 warnings.
# echo 'rpmlint-done:'



Requires
--------
gazebo-doc (rpmlib, GLIBC filtered):
    gazebo

gazebo-media (rpmlib, GLIBC filtered):
    SkyX
    gazebo

gazebo (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/env
    gazebo-media
    ld-linux-x86-64.so.2()(64bit)
    libCEGUIBase-0.7.9.so()(64bit)
    libCEGUIOgreRenderer-0.7.9.so()(64bit)
    libForceTorquePlugin.so()(64bit)
    libGL.so.1()(64bit)
    libGLU.so.1()(64bit)
    libICE.so.6()(64bit)
    libOgreMain.so.1.8.1()(64bit)
    libOgrePaging.so.1.8.1()(64bit)
    libOgreRTShaderSystem.so.1.8.1()(64bit)
    libOgreTerrain.so.1.8.1()(64bit)
    libQtCore.so.4()(64bit)
    libQtGui.so.4()(64bit)
    libSM.so.6()(64bit)
    libSkyX.so.0()(64bit)
    libX11.so.6()(64bit)
    libXext.so.6()(64bit)
    libboost_date_time.so.1.54.0()(64bit)
    libboost_filesystem.so.1.54.0()(64bit)
    libboost_iostreams.so.1.54.0()(64bit)
    libboost_program_options.so.1.54.0()(64bit)
    libboost_regex.so.1.54.0()(64bit)
    libboost_signals.so.1.54.0()(64bit)
    libboost_system.so.1.54.0()(64bit)
    libboost_thread.so.1.54.0()(64bit)
    libc.so.6()(64bit)
    libccd.so.2()(64bit)
    libcurl.so.4()(64bit)
    libdl.so.2()(64bit)
    libfreeimage.so.3()(64bit)
    libgazebo.so.2()(64bit)
    libgazebo_common.so.2()(64bit)
    libgazebo_gimpact.so.2()(64bit)
    libgazebo_gui.so.2()(64bit)
    libgazebo_gui_building.so.2()(64bit)
    libgazebo_gui_viewers.so.2()(64bit)
    libgazebo_math.so.2()(64bit)
    libgazebo_msgs.so.2()(64bit)
    libgazebo_ode.so.2()(64bit)
    libgazebo_opcode.so.2()(64bit)
    libgazebo_opende_ou.so.2()(64bit)
    libgazebo_physics.so.2()(64bit)
    libgazebo_physics_ode.so.2()(64bit)
    libgazebo_rendering.so.2()(64bit)
    libgazebo_rendering_deferred.so.2()(64bit)
    libgazebo_selection_buffer.so.2()(64bit)
    libgazebo_sensors.so.2()(64bit)
    libgazebo_transport.so.2()(64bit)
    libgazebo_util.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libglib-2.0.so.0()(64bit)
    libgts-0.7.so.5()(64bit)
    libltdl.so.7()(64bit)
    libm.so.6()(64bit)
    libopenal.so.1()(64bit)
    libprotobuf.so.8()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libsdformat.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.1)(64bit)
    libtar.so.1()(64bit)
    libtbb.so.2()(64bit)
    libtinyxml.so.0()(64bit)
    rtld(GNU_HASH)

gazebo-playerplugin (rpmlib, GLIBC filtered):
    gazebo(x86-64)
    gazebo-media
    libboost_date_time.so.1.54.0()(64bit)
    libboost_filesystem.so.1.54.0()(64bit)
    libboost_iostreams.so.1.54.0()(64bit)
    libboost_program_options.so.1.54.0()(64bit)
    libboost_regex.so.1.54.0()(64bit)
    libboost_signals.so.1.54.0()(64bit)
    libboost_system.so.1.54.0()(64bit)
    libboost_thread.so.1.54.0()(64bit)
    libc.so.6()(64bit)
    libcurl.so.4()(64bit)
    libdl.so.2()(64bit)
    libfreeimage.so.3()(64bit)
    libgazebo_common.so.2()(64bit)
    libgazebo_math.so.2()(64bit)
    libgazebo_msgs.so.2()(64bit)
    libgazebo_transport.so.2()(64bit)
    libgazebo_util.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgeos-3.4.2.so()(64bit)
    libgeos_c.so.1()(64bit)
    libglib-2.0.so.0()(64bit)
    libgts-0.7.so.5()(64bit)
    libltdl.so.7()(64bit)
    libm.so.6()(64bit)
    libopenal.so.1()(64bit)
    libplayerc++.so.3.0()(64bit)
    libplayerc.so.3.0()(64bit)
    libplayercommon.so.3.0()(64bit)
    libplayercore.so.3.0()(64bit)
    libplayerinterface.so.3.0()(64bit)
    libplayerwkb.so.3.0()(64bit)
    libprotobuf.so.8()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libsdformat.so.1()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libtar.so.1()(64bit)
    libtbb.so.2()(64bit)
    libtinyxml.so.0()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

gazebo-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    cegui-devel
    freeimage-devel
    gazebo(x86-64)
    gazebo-media
    libgazebo.so.2()(64bit)
    libgazebo_common.so.2()(64bit)
    libgazebo_gimpact.so.2()(64bit)
    libgazebo_gui.so.2()(64bit)
    libgazebo_gui_building.so.2()(64bit)
    libgazebo_gui_viewers.so.2()(64bit)
    libgazebo_math.so.2()(64bit)
    libgazebo_msgs.so.2()(64bit)
    libgazebo_ode.so.2()(64bit)
    libgazebo_opcode.so.2()(64bit)
    libgazebo_opende_ou.so.2()(64bit)
    libgazebo_physics.so.2()(64bit)
    libgazebo_physics_ode.so.2()(64bit)
    libgazebo_rendering.so.2()(64bit)
    libgazebo_rendering_deferred.so.2()(64bit)
    libgazebo_selection_buffer.so.2()(64bit)
    libgazebo_sensors.so.2()(64bit)
    libgazebo_transport.so.2()(64bit)
    libgazebo_util.so.2()(64bit)
    protobuf-devel
    sdformat-devel
    tbb-devel



Provides
--------
gazebo-doc:
    gazebo-doc

gazebo-media:
    gazebo-media

gazebo:
    application()
    application(gazebo.desktop)
    gazebo
    gazebo(x86-64)
    libBreakableJointPlugin.so()(64bit)
    libCameraPlugin.so()(64bit)
    libCartTestPlugin.so()(64bit)
    libContactPlugin.so()(64bit)
    libDepthCameraPlugin.so()(64bit)
    libDiffDrivePlugin.so()(64bit)
    libForceTorquePlugin.so()(64bit)
    libGpuRayPlugin.so()(64bit)
    libJointTrajectoryPlugin.so()(64bit)
    libModelPropShop.so()(64bit)
    libModelTrajectoryTestPlugin.so()(64bit)
    libMudPlugin.so()(64bit)
    libPressurePlugin.so()(64bit)
    libRayPlugin.so()(64bit)
    libRubblePlugin.so()(64bit)
    libSkidSteerDrivePlugin.so()(64bit)
    libSonarPlugin.so()(64bit)
    libSphereAtlasTestPlugin.so()(64bit)
    libSpringTestPlugin.so()(64bit)
    libVehiclePlugin.so()(64bit)
    libgazebo.so.2()(64bit)
    libgazebo_common.so.2()(64bit)
    libgazebo_gimpact.so.2()(64bit)
    libgazebo_gui.so.2()(64bit)
    libgazebo_gui_building.so.2()(64bit)
    libgazebo_gui_viewers.so.2()(64bit)
    libgazebo_math.so.2()(64bit)
    libgazebo_msgs.so.2()(64bit)
    libgazebo_ode.so.2()(64bit)
    libgazebo_opcode.so.2()(64bit)
    libgazebo_opende_ou.so.2()(64bit)
    libgazebo_physics.so.2()(64bit)
    libgazebo_physics_ode.so.2()(64bit)
    libgazebo_rendering.so.2()(64bit)
    libgazebo_rendering_deferred.so.2()(64bit)
    libgazebo_selection_buffer.so.2()(64bit)
    libgazebo_sensors.so.2()(64bit)
    libgazebo_transport.so.2()(64bit)
    libgazebo_util.so.2()(64bit)

gazebo-playerplugin:
    gazebo-playerplugin
    gazebo-playerplugin(x86-64)
    libgazebo_player.so.2()(64bit)

gazebo-devel:
    gazebo-devel
    gazebo-devel(x86-64)
    pkgconfig(gazebo)
    pkgconfig(gazebo_ode)
    pkgconfig(gazebo_transport)



Unversioned so-files
--------------------
gazebo: /usr/lib64/gazebo-2.2/plugins/libBreakableJointPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libCameraPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libCartTestPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libContactPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libDepthCameraPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libDiffDrivePlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libForceTorquePlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libGpuRayPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libJointTrajectoryPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libModelPropShop.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libModelTrajectoryTestPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libMudPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libPressurePlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libRayPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libRubblePlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libSkidSteerDrivePlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libSonarPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libSphereAtlasTestPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libSpringTestPlugin.so
gazebo: /usr/lib64/gazebo-2.2/plugins/libVehiclePlugin.so
gazebo-playerplugin: /usr/lib64/player/libgazebo_player.so

Source checksums
----------------
http://gazebosim.org/assets/distributions/gazebo-2.2.1.tar.bz2 :
  CHECKSUM(SHA256) this package     : 153ad233159ccb8426481ec81859bc6ad6419872bc8389c3cf9b19f4a117da02
  CHECKSUM(SHA256) upstream package : 153ad233159ccb8426481ec81859bc6ad6419872bc8389c3cf9b19f4a117da02


Generated by fedora-review 0.5.1 (bb9bf27) last change: 2013-12-13
Command line :/usr/bin/fedora-review -b 825409
Buildroot used: fedora-20-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG
Comment 33 Rich Mattes 2014-05-18 11:41:16 EDT
Thanks for the review Scott.  I've replied to your notes inline

(In reply to Scott K Logan from comment #32)
> Okay, I've completed the package review. This is a MASSIVE package, and I
> applaud your efforts, Rich. Nonetheless, There are a few things that should
> be addressed before this package is approved.
> 
> Notes:
> - Is there a reason that you are not using the %cmake macro in the %build
>   section? This will set many of the manually defined cmake variables,
>   including CMAKE_INSTALL_PREFIX, which should otherwise be %{_prefix}, not
>   `/usr`.

There used to be a reason, but as gazebo evolved it stopped trying to do things like override user-specified cflags.  It looks like now it's OK to just use %cmake, so I switched it.

> - Any reason not to pass %{?_smp_mflags} to `make doc`? Maybe it can take
>   advantage of threading...

I don't think there's any reason to, but it can't hurt.

> - Unversioned .so files are in non-devel package, but these are plugins and
>   are in a private directory that is not in the ld path, so this is okay.
> - There are several bundled fonts in gazebo-media [1]. This should be
> addressed.

Ugh.  I'll try to fix this.

> - Gazebo 3.0 has been released. Is there an argument that Fedora 19/20 should
>   have 2.2 instead?

Not really, other than the fact that the required packages aren't all ready yet. Gazebo 3 requires sdformat 2.0 or higher, and the repositories currently have 1.4.  I built sdformat 2.0 for f20 and pushed it to updates-testing, and will also do so for f19 and el6.  sdformat in rawhide is broken because i update udrdfom to 3.0 which sdformat doesn't support yet.  I'm waiting on the bug at https://bitbucket.org/osrf/sdformat/issue/59/embedded-copy-of-urdfdom-is-outdated to be resolved before I can build sdformat 2.0 in rawhide.


So that being said, I've got updates here:

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-3.0.0-1.fc20.src.rpm

The font issue is still not addressed, I will keep working on that and post it when it's ready.
Comment 34 Rich Mattes 2014-05-23 18:04:12 EDT
Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-3.0.0-2.fc20.src.rpm

I addressed the font issue by removing the bundled font files.  I can't find any reference to the fonts in the code.  I think they're included for OGRE's font rendering package, but I removed them and couldn't see any differences when running gazebo. 

I've also updated the fpc ticket about bundling ode, by splitting gazebo-ode into it a separate subpackage.

rpmlint:
$ rpmlint gazebo.spec ../RPMS/noarch/gazebo-* ../RPMS/x86_64/gazebo-*
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-symlink /usr/share/gazebo-3.0/media/skyx /usr/share/SKYX/Media/SkyX
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzlog-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzlog
gazebo.x86_64: W: no-manual-page-for-binary gzstats
gazebo.x86_64: W: no-manual-page-for-binary gzclient-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gz
gazebo.x86_64: W: no-manual-page-for-binary gz-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gztopic
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzstats-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzserver-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzsdf
gazebo.x86_64: W: no-manual-page-for-binary gazebo-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gztopic-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzfactory
gazebo-devel.x86_64: W: no-documentation
gazebo-ode.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.3.0.0 exit@GLIBC_2.2.5
gazebo-playerplugin.x86_64: W: no-documentation
7 packages and 1 specfiles checked; 0 errors, 23 warnings.


There's no scratch build due to sdformat still being in updates-testing in f19 and f20 (and broken in rawhide atm).  I'll try to get the rawhide breakage fixed up once the mass rebuilds start since it's also part of the boost update in a separate side tag.
Comment 35 Rich Mattes 2014-05-27 15:42:41 EDT
sdformat 2.0.0 is built in rawhide under the f21-boost tag.  sdformat in f20 and f19 have gone to stable as well.
Comment 36 Rich Mattes 2014-05-27 23:21:11 EDT
Scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6899770
Comment 37 Scott K Logan 2014-06-03 02:22:04 EDT
Things look great, Rich. Please let me do a little more testing against ROS for problems compiling against this package. It shouldn't be more than a couple of more days.

Thanks again, and good work here!
Comment 38 Scott K Logan 2014-06-04 14:48:34 EDT
Okay, I've done some more thorough testing. Lets first talk about the things I mentioned before:

- %cmake macro - Addressed
- make threading - Addressed
- bundled fonts - Addressed
- new version - Addressed

Now for some new things:

- Gazebo 3.0 added a build dependency on gdal-devel. This needs to be added as a
  run dependency in gazebo-devel [1].
- The fix for linking against player seems to have disappeared [2].
- We talked offline about this, but there is a pretty big difference in the way
  boost is influencing the behaviour of gzclient when there is no gazebo server
  running. The intended behaviour is that gzclient tries for 30 seconds and
  gives up. You should incorporate a patch to fix this, or Gazebo is essentially
  impossible to start using roslaunch [3].
- Since Gazebo explicitly needs sdformat 2, you should specify that in the build
  requirement. It took me a while to figure out why I couldn't build the new
  package...of course, updating sdformat to the newest RPM fixed it.
- I found that when I added the correct PATH and LD_LIBRARY_PATH to the %check
  section, a large amount of the tests started working. Additionally, I analyzed
  the remaining three and found reasons that they may never work in fedora's
  build environment. I then blacklisted these tests, so all of them were
  succeeding when I built in mock on build slave. It looks like there are more
  tests that fail when built in Koji, so removing the /usr/bin/true from `make
  test` probably isn't a good idea, but it might be worth investigating the
  Koji failures eventually. The changes are at [4] and [5].
- I see that the base package depends on -media, but I'm wondering if it
  wouldn't be a good idea for -media to depend on the base as well. That way,
  there is still a separate noarch packge for the assets, but -media will be
  uninstalled with the base package. There really isn't a reason to have one
  without the other...

I've implemented the changes and tested them. Feel free to use them directly, modify them, or not use them at all. I feel that this package is very close to being ready!

[1] https://github.com/cottsay/gazebo-rpm/commit/7944d7b51eb222291c1a64df34cdc7c0392f48a4
[2] https://github.com/cottsay/gazebo-rpm/commit/324f8e798473ca3d75aaed2883732eb6b5f36917
[3] https://github.com/cottsay/gazebo-rpm/commit/78c86e05018377f6b7acaa40d7845377fb757b99
[4] https://github.com/cottsay/gazebo-rpm/commit/19df7f9ad2a7cc7ad80160e6296024fd54bb9c04
[5] https://github.com/cottsay/gazebo-rpm/commit/68b8d4b6cc1891b291e8f2d5316b91e04f2755cc
Comment 39 Rich Mattes 2014-06-09 23:14:15 EDT
Hi Scott,

Thanks for the comments (and the patches!)  I've incorporated all of the feedback you provided, mostly by copying the commits you pointed to.  The only thing that I didn't address was the gazebo media/gazebo split.  

There was a circular dependency between gazebo and gazebo-media up until the 3.0 update.  I think that this dependency was confusing rpm since both packages had files in datadir/gazebo and datadir/gazebo-x.y.  As a result, the gazebo directories in datadir were not getting deleted when the rpms were erased.  I agree that gazebo-media is useless without gazebo, but nothing in the package strictly requires gazebo to be around either.  The other way I could approach it is to put the setup.sh files in the media subdirectory, and have nothing in the main gazebo package touch datadir/gazebo.  I don't think that'll work though, because setup.sh contains arch-dependent paths and can't be in the -noarch media subpackage.

So here's the update:
Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-3.0.0-3.fc20.src.rpm

rpmlint:
$ rpmlint ./gazebo-* ../../gazebo.spec 
gazebo.src: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.src: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: spelling-error Summary(en_US) multi -> mulch, mufti
gazebo.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
gazebo.x86_64: W: no-manual-page-for-binary gzsdf-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzlog-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzlog
gazebo.x86_64: W: no-manual-page-for-binary gzstats
gazebo.x86_64: W: no-manual-page-for-binary gzclient-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gz
gazebo.x86_64: W: no-manual-page-for-binary gz-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gztopic
gazebo.x86_64: W: no-manual-page-for-binary gzfactory-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzstats-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzserver-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzsdf
gazebo.x86_64: W: no-manual-page-for-binary gazebo-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzmodel_create
gazebo.x86_64: W: no-manual-page-for-binary gztopic-3.0.0
gazebo.x86_64: W: no-manual-page-for-binary gzfactory
gazebo-devel.x86_64: W: no-documentation
gazebo-media.noarch: W: no-documentation
gazebo-media.noarch: W: dangling-symlink /usr/share/gazebo-3.0/media/skyx /usr/share/SKYX/Media/SkyX
gazebo-ode.x86_64: W: shared-lib-calls-exit /usr/lib64/libgazebo_ode.so.3.0.0 exit@GLIBC_2.2.5
gazebo-playerplugin.x86_64: W: no-documentation
8 packages and 1 specfiles checked; 0 errors, 25 warnings.


scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=7030270

The scratch build is for f20.  The OGRE library got bumped from 1.8 to 1.9 in rawhide, and SkyX still needs to be updated to work with OGRE 1.9
Comment 40 Scott K Logan 2014-06-10 12:55:30 EDT
Rich -

I can't find anything else to be picky about, and I believe that this package meets the Fedora packaging specifications well. This has literally been years in the making, but I think the package is where it needs to be!

**** APPROVED ****

Thanks,

--scott
Comment 41 Michael Schwendt 2014-06-10 13:44:39 EDT
> %package playerplugin
> Summary:       Player plugin for %{name}
> Requires:      %{name}%{?_isa} = %{version}-%{release}
> Requires:      %{name}-media = %{version}-%{release}

The %name base package already depends on %name-media.


> BuildRequires: player-devel
> 
> %description playerplugin
> Player plugin driver for %{name}

> %files playerplugin
> %{_libdir}/player/libgazebo_player.so
> %{_datadir}/%{name}-%{abiversion}/examples/player

So, it is a plugin for Player and therefore should be named player-gazebo to meet the %parent-%child naming guidelines:

  https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Addon_Packages_.28General.29


> %package ode

The base %name package depends on libgazebo_ode automatically, so putting it in a subpackage is questionable:

  $ rpm -qp gazebo-ode-3.0.0-3.fc20.x86_64.rpm --provides|grep ^lib
  libgazebo_ode.so.3()(64bit)

  $ rpm -qpR gazebo-3.0.0-3.fc20.x86_64.rpm |grep _ode
  libgazebo_ode.so.3()(64bit)
  libgazebo_physics_ode.so.3()(64bit)


> %package media

A better choice would have been to introduce a -filesystem or -common package for some of the directories included in this -media package (e.g. the empty examples directory). Currently, even the -devel package needs those directories, and the -media package is 30+ MB!

Splitting off a -libs subpackage from the base package would have been a good idea, too. The -devel package doesn't need to depend on plugins and media, does it?
Similarly for the Player plugin. Currently it pulls in everything.


gazebo pkgconfig file tells:

Libs: -L${libdir} -L${prefix}/lib64/gazebo-3.0/plugins -L -lgazebo_transport -lgazebo_physics -lgazebo_sensors -lgazebo_rendering -lgazebo_gui -lsdformat -lgazebo_msgs -lgazebo_math -lgazebo_common -lgazebo
CFlags: -I${includedir}/gazebo-3.0 -I/usr/include/sdformat-2.0

Why the empty -L? 
Why is it adding the plugins path to the linker's search path list?
Linking with any of the plugins won't work, because they are stored outside runtime linker's search path. The gazebo-config.cmake file even adjusts the rpath for the plugins dir? What's the story here?

> -rw-r--r--  /usr/share/gazebo-3.0/setup.sh
> -rw-r--r--  /usr/share/gazebo/setup.sh

The same file in two places.
It puts the plugins directory into LD_LIBRARY_PATH.



> %package doc
> Summary:       Development documentation for %{name}
> Requires:      %{name} = %{version}-%{release}

The PDF and HTML files in this package do not need a dependency on the base package.
Comment 42 Michael Schwendt 2014-06-11 09:15:08 EDT
Examining the base package contents closer, at least /usr/bin/gazebo and /usr/bin/gz are linked with libgazebo_ode. Didn't examine the other executables except for the Player plugin, which is not linked with it.

Whether to split off that library into subpackage(s), it seems the "ode" headers don't have any external deps (other than libc):

  $ cd usr/include/gazebo-3.0/gazebo/ode/
  $ grep \#include *|grep -v ode
  collision.h:#include "collision_trimesh.h"
  common.h:#include <math.h>

And gazebo_ode.pc also doesn't list any dependencies either.

The remaining headers in gazebo-devel don't include any of these "ode" headers.

Conclusion: gazebo-ode + gazebo-ode-devel would be a pair of subpackages that could be split off, provided that there are API users that only develop with libgazebo_ode and not "the full show" (-> gazebo-devel).
Comment 43 Rich Mattes 2014-06-11 09:57:08 EDT
gazebo_physics and friends should also be linked with gazebo_ode.  gazebo-ode is a fork of the ODE package in Fedora, and I'm working through the fedora packaging committee to make sure I abide by the bundled library rules. I split it into a separate sub-package as per the advice in https://fedorahosted.org/fpc/ticket/317 

As far as the other things you pointed out, most of them are easy fixes.  The gazebo-media as owner of /usr/share/gazebo-3.0/* could use some more thought though.  I think almost all of the stuff in the media subdirectory is used for the gui, so we can probably get away with:

gazebo-common: /usr/share/gazebo-3.0 directory structure
gazebo: executables, desktop file, manuals, gazebo plugin libraries (libdir/gazebo), setup script (/usr/share/gazebo-3.0/setup.sh)
  Requires: gazebo-common
  Requires: gazebo-media
gazebo-libs: versioned shared libraries
gazebo-libs-devel: unversioned libraries, headers, cmake, pkgconfig, examples
  Requires:  gazebo-common
gazebo-ode: ode fork
gazebo-ode-devel: ode fork libraries
gazebo-media: assets
  Requires: gazebo
gazebo-doc: html documentation
player-gazebo: Player plugin and example configurations
  Requires:  gazebo-common

I'm not sure if gazebo-libs-devel should just be called gazebo-devel, or if it should have a Provides: for gazebo devel so that people that want to build against gazebo don't get tripped up when they try to install gazebo-devel and it's unavailable.
Comment 44 Rich Mattes 2014-06-26 19:56:36 EDT
I realize there's already a fedora reveiw + but I still wanted to post the updates as per above:

Spec URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo.spec
SRPM URL: http://rmattes.fedorapeople.org/RPMS/gazebo/gazebo-3.0.0-4.fc20.src.rpm

I'm planning on moving forward with this package configuration, which addresses all of Michael's criticism, once I get clearance from the packaging committee about the ODE issue.
Comment 45 Dominik 'Rathann' Mierzejewski 2014-07-03 13:08:35 EDT
One passing-by comment:

%cmake  \
 -DCMAKE_VERBOSE_MAKEFILE=ON \
 -DLIB_INSTALL_DIR:STRING="%{_lib}" \
 -DSSE2_FOUND=OFF -DSSE3_FOUND=OFF \

Please enable SSE2 on x86_64. It's guaranteed to be there by platform ABI.
Comment 46 Rich Mattes 2014-07-03 16:15:05 EDT
(In reply to Dominik 'Rathann' Mierzejewski from comment #45)
> 
> Please enable SSE2 on x86_64. It's guaranteed to be there by platform ABI.

Thanks, I agree and will double check to make sure that SSE2 is enabled for x86_64 before building.


The FPC has agreed that ODE as bundled by Gazebo counts as a fork of the library, and that the handling of the fork by this package is sufficient.  With that taken care of, I will begin the process of importing the package.  Please comment or file new bugs if there are any outstanding issues.

Thanks to everyone for the comments and review over the past 2 years! 


New Package SCM Request
=======================
Package Name: gazebo
Short Description: 3D multi-robot simulator with dynamics
Upstream URL: http://gazebosim.org
Owners: rmattes
Branches: f19 f20 el6 epel7
InitialCC:
Comment 47 Jon Ciesla 2014-07-07 07:51:53 EDT
Git done (by process-git-requests).
Comment 48 Fedora Update System 2014-07-20 15:14:03 EDT
gazebo-3.0.0-4.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/gazebo-3.0.0-4.fc20
Comment 49 Fedora Update System 2014-07-21 23:33:40 EDT
gazebo-3.0.0-4.fc20 has been pushed to the Fedora 20 testing repository.
Comment 50 Jakub Čajka 2014-07-22 04:13:07 EDT
Created attachment 919823 [details]
Exclude s390(x)

Hello,

package fails to build on s390(x) as gperftools and tbb are exclusive/excluded from s390(x). I'm proposing to make this package exclusive for all other archs, as it should build there. I'm including in attachment patch doing so.
 
Link to failing build:
http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1441628

Best regards

Jakub
Comment 51 Fedora Update System 2014-07-23 23:20:42 EDT
gazebo-3.0.0-5.fc20 has been pushed to the Fedora 20 testing repository.
Comment 52 Fedora Update System 2014-08-01 19:54:39 EDT
gazebo-3.0.0-5.fc20 has been pushed to the Fedora 20 stable repository.

Note You need to log in before you can comment on or make changes to this bug.