Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect SETUPTOOLS_DEB_LAYOUT properly on non-debian systems. #418

Closed
ahendrix opened this issue May 2, 2013 · 5 comments
Closed

Detect SETUPTOOLS_DEB_LAYOUT properly on non-debian systems. #418

ahendrix opened this issue May 2, 2013 · 5 comments
Assignees

Comments

@ahendrix
Copy link

ahendrix commented May 2, 2013

Currently, SETUPTOOLS_DEB_LAYOUT defaults to ON. This beaks on non-debain-based systems such as OS X, Windows, Gentoo, Arch, Fedora, etc.

Is it possible to make SETUPTOOLS_DEB_LAYOUT default to OFF, and turn it on if a deb-specific file exists; perhaps /etc/debian_version ?

if(EXISTS /etc/debian_version) ...

@dirk-thomas
Copy link
Member

For OS X and Windows the default value is actually OFF. Can you point to references for the above mentioned platforms which install layout they are using?

@ahendrix
Copy link
Author

ahendrix commented May 2, 2013

The default value should be OFF, and it should be ON only if the system is debian-based.

Manually turning off SETUPTOOLS_DEB_LAYOUT is mentioned at various points in the install instructions for all of them:

http://www.ros.org/wiki/groovy/Installation/Gentoo
http://www.ros.org/wiki/groovy/Installation/Fedora
http://www.ros.org/wiki/groovy/Installation/Arch

@ghost ghost assigned dirk-thomas May 3, 2013
@tho-
Copy link

tho- commented Jun 27, 2013

This commit makes it impossible to override the default (i.e. disable debian-layout on debian platforms)
Could it be converted back to an option? (even if autodetected)

@dirk-thomas
Copy link
Member

Could you describe a use case where that is desired on a Debian platform?

@tho-
Copy link

tho- commented Jun 27, 2013

As long as you install from sources, you do not have to follow debian rules. Since debian is the only system redefining the python default of 'site-packages', it adds superflous complexity to e.g. environment setup scripts that are shared amongst different arch. (e.g. PYTHONPATH=${HOME}/${MACHTYPE}-${OSTYPE}/lib/python2.7/site-packages would break, it would need a special case for debian). That's why I usually ignore debian's 'dist-packages' and configure a consistent setup.

Besides that, if you use another package system than dpkg/apt, you may want to stick to your package system strategy and it may not be the same as 'debian'. I often use pkgsrc to install my packages, and pkgsrc just sticks to the python default of installing to "sites-packages". I do have a few packages for ros in robotpkg, and robotpkg also has a "sites-packages" everywhere strategy. Of course I can have local patches in robotpkg for that, but it becomes a problem when mixing a vanilla .deb catkin with other robotpkg ros packages.

Autodetecting --install-layout is just fine as it is, but I feel that turing it into an option (as it's always been) adds no overhead and is more user-friendly in the end. Even on debian, distutils, for instance, has a user-tunable option :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants