]> err.no Git - dpkg/commitdiff
dpkg-buildpackage: Check if rootcommand is present and error otherwise
authorGuillem Jover <guillem@debian.org>
Fri, 28 Sep 2007 02:44:56 +0000 (05:44 +0300)
committerGuillem Jover <guillem@debian.org>
Mon, 8 Oct 2007 04:12:43 +0000 (07:12 +0300)
ChangeLog
scripts/dpkg-buildpackage.pl

index ceff5e8fd0f632a4c631b3ab98823e61aef52ba8..19b3742e607614795a79a7b13a595748f52ebe07 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-07  Guillem Jover  <guillem@debian.org>
+
+       * scripts/dpkg-buildpackage.pl: Warn if run as root and $rootcommand
+       has been specified. Error if run as non-root and $rootcommand is not
+       found.
+
 2007-10-07  Guillem Jover  <guillem@debian.org>
 
        * scripts/dpkg-buildpackage.pl (usage): Remove details about running
index 3b374ef8d20cc7b7ed39706594c3c03b05e37abb..232fd884efa300bf223d935355c74df15fd952cc 100644 (file)
@@ -84,10 +84,6 @@ sub testcommand {
 }
 
 my $rootcommand = '';
-if (testcommand('fakeroot')) {
-    $rootcommand = 'fakeroot';
-}
-
 my $signcommand = '';
 if ( ( ($ENV{GNUPGHOME} && -e $ENV{GNUPGHOME})
        || ($ENV{HOME} && -e "$ENV{HOME}/.gnupg") )
@@ -200,6 +196,22 @@ while (@ARGV) {
     }
 }
 
+if ($< == 0) {
+    warning(_g("using a gain-root-command while being root")) if ($rootcommand);
+} else {
+    $rootcommand ||= 'fakeroot';
+
+    if (!testcommand($rootcommand)) {
+       if ($rootcommand eq 'fakeroot') {
+           error(_g("fakeroot not found, either install the fakeroot\n" .
+                    "package, specify a command with the -r option, " .
+                    "or run this as root"));
+       } else {
+           error(sprintf(_g("gain-root-commmand '%s' not found"), $rootcommand));
+       }
+    }
+}
+
 unless ($signcommand) {
     $signsource = 0;
     $signchanges = 0;