On Sat, Feb 11, 2012 at 1:50 PM, Brian Gerkey wrote: > On Sat, Feb 11, 2012 at 11:35 AM, Ken Conley wrote: >> On Sat, Feb 11, 2012 at 10:46 AM, Bill Morris >> wrote: >>> On Fri, 2012-02-10 at 14:01 -0800, Brian Gerkey wrote: >>>> On Fri, Feb 10, 2012 at 9:06 AM, Jack O'Quin wrote: >>>> > As an old Unix developer I have a somewhat visceral reaction against >>>> > putting machine-dependent binaries inside a share directory. I suppose >>>> > it's too late to fix that for Fuerte, but it's just wrong, and almost >>>> > anything would be better. This will not be easy to fix in a future >>>> > release. >>>> > >>>> > There is no obvious choice for an alternative. Although "/lib" mostly >>>> > contains libraries, there are actually quite a few executables in its >>>> > subdirectories, and many more under "/usr/lib". So, I suggest >>>> > something like "lib/ros/" in place of >>>> > "share/". Another alternative might be "opt" (or >>>> > just making something up), but "lib" seems better to me. >>>> > >>>> > Using "share/ros/" for genuine >>>> > architecture-independent files (.xml, .yaml, etc.) is good, but not a >>>> > requirement. There are advantages to keeping most or all installed >>>> > files for a single package together. >>>> >>>> You have a point there.  We could easily go into >>>> "lib/".    We'd just have point ROS_PACKAGE_PATH to >>>> lib instead of share, and CMake will find things in >>>> "lib//cmake" the same as it will in >>>> "share//cmake." >>>> >>>> Now, if we want to go into "lib/ros/," then we'd >>>> have to play with the CMake infrastructure some to make things like >>>> 'find_package(roscpp)' work properly.  How important do you think it >>>> is to have the intermediate "ros" directory in there? >>> >>> Putting binaries in share seems strange to me as well. I would prefer >>> something like the bsd concept of libexec [1] or >>> lib/ros/. lib/ seems like it will >>> cause namespace problems and clutter. >> >> Thanks for the pointer about libexec.  Learned something new and got >> to read through other debates that are similar to this: >> >> http://lists.debian.org/debian-devel/2005/05/msg00401.html >> >> lib/ is, as Jack and you have well-argued, the correct choice. >> libexec/ would be a nice choice if we didn't have to package on >> Debian/Ubuntu.  A lib/ros/ scheme would provide good >> sandboxing for the executables that roslaunch can invoke.  REP 123 >> would have to be updated with a new environment variable so that the >> location of 'lib' can be found. >> >> We can start working on implementation changes post-Fuerte and have >> this well-formed for Groovy.  Stacks that are converted to catkin in >> Fuerte will need to be branched, but as we have kept this set >> intentionally small, it should not be too difficult. > > FWIW, switching from share/ to > lib/ should be easy and low-risk.  If that's > preferred to share/,  it could be done for Fuerte. > Switching to share/ros/ is riskier, but can be > easily tested.  I'll look into it. By 'low-risk' I assume you mean amending the spec so that manifest/launch/etc... files go in lib/ as well? Or do you mean changing the find_node() code? - Ken > >        brian. > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users