From: Max H. <ma...@qu...> - 2010-03-05 01:25:27
|
Hi Daniel, thanks for the heads up. I really would like to push this one on, as it seems to me that building as root is a really bad thing in most cases. I am kind of surprised we didn't make this move a couple years ago already, but better late than never ;). The main reason I suggested a fink.conf flag for this is that I thought there were some strong argument to not make this the default for "joe average". Since this doesn't seem to be the case, I agree that it's better to just make it the default; no need for a fink.conf entry. Adding a new .info field as you suggest makes sense to me. Something like BuildAsRoot: true (suggestions for a better name are welcome). If present and set to true, this would cause the current build behavior; otherwise, we default to building as nobody. Adding this should be quite basic, code wise. For backward compatibility, we could state in the documentation for this field that packages using it should keep a check like if [ $UID -ne 0 ]; then echo "%n cannot be built with --build-as- nobody"; exit 1; fi As for "--build-as-root" vs. "-no-build-as-nobody" -- I am aware of the "--no" convention and the automatic support for it in getopt; my main motivation for adding it is, well, evident if you compare the two... :). But maybe we *want* building as root to be very obfuscate and special, in that case, "--no-build-as-nobody" would of course be fine ;). Things that "just build different as nobody" don't concern me overly. These differences are either harmless; or bugs, which were simply hidden so far, and then it's good that we uncover them. Any objections to this? Please voice them! If you don't have time for a proper reply, even a simple "I have objections, will explain later!" would be helpful... I'll try to write a patch tomorrow, if I find the time. I won't complain if somebody else beats me to it, though :). For reference, in my unstable tree, only the following files contain an UID check: base/dpkg.info database/mysql-unified.info database/mysql.info editors/emacs22.info editors/emacs23-10.4.info editors/emacs23.info gnome/gdm-10.4.info gnome/gdm.info gnome/gnome-games.info utils/cdrtools.info These would be primary candidates for the new field. Most (all) of them don't document why building as root is required; IMO this is bad, and we should add relevant comments (resp. add the explanation to DescPackaging, resp. fix the requirement ;). Cheers, Max |