ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I have no official answer. This is just my personal understanding of the situation regarding /etc
.
Current ROS behavior using /opt/ros/hydro/etc/ros
seems to violate the Linux Filesystem Hierarchy Standard, because setting $PREFIX=/usr
would place things under /usr/etc
, which is specifically disallowed. Since people seldom build ROS with that prefix, the problem is more potential than acute.
We still have not resolved that problem. It requires some REP updates, and came up too late in the Hydro release cycle. It should probably be discussed now and fixed in Indigo.
There are relatively few ROS packages installing files using ${CATKIN_PACKAGE_ETC_DESTINATION}
. They need to be looked at on a case-by-case basis, but my feeling is that most of them should use ${CATKIN_PACKAGE_SHARE_DESTINATION}
instead. That probably helps solve most of the issues you mentioned with access to both generated and source files.
There is a separate issue with packages for managing entire robots, like some of yours. For them, there are cases where things like upstart files need to be installed under the system /etc
directory. That was never handled by ROS_ETC_DIR
, anyway. We need to specify how and when such operations are appropriate.
2 | No.2 Revision |
I have no official answer. This is just my personal understanding of the situation regarding /etc
.
Current ROS behavior using /opt/ros/hydro/etc/ros
seems to violate the Linux Filesystem Hierarchy Standard, because setting $PREFIX=/usr
would place things under /usr/etc
, which is specifically disallowed. Since people seldom build ROS with that prefix, the problem is more potential than acute.
We still have not resolved that problem. It requires some REP updates, and came up too late in the Hydro release cycle. It should probably be discussed now and fixed in Indigo.
There are relatively few ROS packages installing files using ${CATKIN_PACKAGE_ETC_DESTINATION}
. They need to be looked at on a case-by-case basis, but my feeling is that most of them should use ${CATKIN_PACKAGE_SHARE_DESTINATION}
instead. That probably helps solve most of the issues you mentioned with access to both generated and source files.
There is a separate issue with packages for managing entire robots, like some of yours. For them, there are cases where things like upstart files need to be installed under the system /etc
directory. That was never handled by ROS_ETC_DIR
, anyway. We need to specify how and when such operations are appropriate.
EDIT: Bloom support for conffiles is a bigger problem, best discussed in your issue #226. The problem remains that neither ${CATKIN_PACKAGE_ETC_DESTINATION}
nor ${CATKIN_PACKAGE_SHARE_DESTINATION}
are appropriate for admin-customizable configuration data.
As far as I know, no standard forbids putting default config data in ${CATKIN_PACKAGE_SHARE_DESTINATION}/etc
, but as you know it needs special handling to avoid getting overwritten by apt-get.
Common Linux practice would probably install them in the global /etc/package_name
directory, then provide a ~/.package_name
for per-user settings.