> Hi, > > I was looking at https://www.cmake.org/Bug/view.php?id=3602 "Add > possibility to change file owner into install macro".
I am also interested in this feature but mostly because of packaging limitations - implementing this feature would give CPackRPM the ability to set user and group for every file/directory/link that generated RPM will contain. This can already be done by a workaround - providing the file with user and group in CPACK_RPM_<component>_USER_FILELIST- but extending install command would be a more elegant solution. > I believe we should in fact support specifying the file owner, and > handle the case where that owner does not exist in the same way (from a > user experience) as we handle platforms that don't support SETUID - i.e. > do nothing (logging some kind of non-fatal error would be good). I am usually using install target for installing the entire project locally for testing and in such cases I prefer to have everything installed as current user in a subdirectory of my build directory. I believe that this use case should be solved by providing a new target - rootless_install - which ignores USER and GROUP setting in INSTALL commands. On the other hand when I want to install something permanently on my system after building the project I would prefer that user and group settings are applied and in such case I would prefer a fatal error if user/group permission can not be applied (preferably with CMake rolling back the changes that it already made on the file system - new feature?). This could be part of current install target. > Automatically creating a non-existing user would also be nice but is > orthogonal and should be handled as a separate feature request rather > than muddying the waters around this feature discussion. Not certain if I'd like this feature or not but I agree that it should be discussed as a separate feature. There was also a third case provided by Brad: 3.) What if installing into a DESTDIR that exists on a mount point and the user names should be translated to uids with $(DESTDIR)/etc/passwd instead of /etc/passwd? How should this be specified? I've already encountered a situation where I mounted a partition that had files with users and groups that were present in /etc/passwd but under different uids and gids so ls -l was showing numbers instead of names. In such case only root user may create new files since they will have a different uids and gids so nothing changes... I'd say that different uids for the same user name is users problem and should be ignored by CMake. Regards, Domen -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
