]> err.no Git - dpkg/commitdiff
Move retrieval of uid and gid information from controllib.pl into a
authorGuillem Jover <guillem@debian.org>
Thu, 11 Jan 2007 12:16:51 +0000 (12:16 +0000)
committerGuillem Jover <guillem@debian.org>
Thu, 11 Jan 2007 12:16:51 +0000 (12:16 +0000)
function, so that scripts not needing it do not execute that code.
Based on a patch by Riku Voipio. Closes: #396884

ChangeLog
debian/changelog
scripts/controllib.pl
scripts/dpkg-distaddfile.pl
scripts/dpkg-gencontrol.pl
scripts/dpkg-shlibdeps.pl
scripts/dpkg-source.pl

index 0a6030489fdb5b1018d2985c31462c8671432b25..dc7d2b7e65e2e7baa8ab26f0a0d414f02e85ec3d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-01-11  Riku Voipio <riku.voipio@iki.fi>
+           Guillem Jover <guillem@debian.org>
+
+       * scripts/controllib.pl: Move the getlogin and fowner initialization
+       to ...
+       (getfowner): ...here. New function.
+       * scripts/dpkg-source.pl: Use getfowner() instead of @fowner.
+       * scripts/dpkg-gencontrol.pl: Likewise.
+       * scripts/dpkg-distaddfile.pl: Likewise.
+       * scripts/dpkg-shlibdeps.pl: Likewise.
+
 2007-01-10  Julian Gilbey  <jdg@polya.uklinux.net>
 
        * scripts/dpkg-buildpackage.sh: Allow '-b' to properly override a
index f9722ce593a4cf064e5a7ccea3b61becd8e6a37c..d553b0aa4886f3a95f8c9f9d95df72ff115c5cd5 100644 (file)
@@ -5,6 +5,9 @@ dpkg (1.14.0) UNRELEASED; urgency=low
     one in the source. Thanks to Nicolas François. Closes: #379320
   * Allow dpkg-buildpackage to properly override '-b' when passed after '-B'.
     Thanks to Julian Gilbey. Closes: #397479
+  * Move retrieval of uid and gid information from controllib.pl into a
+    function, so that scripts not needing it do not execute that code.
+    Based on a patch by Riku Voipio. Closes: #396884
 
  -- Guillem Jover <guillem@debian.org>  Tue,  9 Jan 2007 22:48:47 +0200
 
index d57053271aeceb6e5732118aecbdc37f92d8a99f..a3be7a27161006695742b8ba0048230e609015a6 100755 (executable)
@@ -35,8 +35,10 @@ $quiet_warnings = 0;
 
 $progname= $0; $progname= $& if $progname =~ m,[^/]+$,;
 
-$getlogin = getlogin();
-if(!defined($getlogin)) {
+sub getfowner
+{
+    $getlogin = getlogin();
+    if (!defined($getlogin)) {
        open(SAVEIN, "<&STDIN");
        close(STDIN);
        open(STDIN, "<&STDERR");
@@ -46,8 +48,8 @@ if(!defined($getlogin)) {
        close(STDIN);
        open(STDIN, "<&SAVEIN");
        close(SAVEIN);
-}
-if(!defined($getlogin)) {
+    }
+    if (!defined($getlogin)) {
        open(SAVEIN, "<&STDIN");
        close(STDIN);
        open(STDIN, "<&STDOUT");
@@ -57,20 +59,29 @@ if(!defined($getlogin)) {
        close(STDIN);
        open(STDIN, "<&SAVEIN");
        close(SAVEIN);
-}
+    }
+
+    if (defined($ENV{'LOGNAME'})) {
+       @fowner = getpwnam($ENV{'LOGNAME'});
+       if (!@fowner) {
+           die(sprintf(_g('unable to get login information for username "%s"'), $ENV{'LOGNAME'}));
+       }
+    } elsif (defined($getlogin)) {
+       @fowner = getpwnam($getlogin);
+       if (!@fowner) {
+           die(sprintf(_g('unable to get login information for username "%s"'), $getlogin));
+       }
+    } else {
+       &warn (sprintf(_g('no utmp entry available and LOGNAME not defined; using uid of process (%d)'), $<));
+       @fowner = getpwuid($<);
+       if (!@fowner) {
+           die (sprintf(_g('unable to get login information for uid %d'), $<));
+       }
+    }
+    @fowner = @fowner[2,3];
 
-if (defined ($ENV{'LOGNAME'})) {
-    @fowner = getpwnam ($ENV{'LOGNAME'});
-    if (! @fowner) { die (sprintf (_g('unable to get login information for username "%s"'), $ENV{'LOGNAME'})); }
-} elsif (defined ($getlogin)) {
-    @fowner = getpwnam ($getlogin);
-    if (! @fowner) { die (sprintf (_g('unable to get login information for username "%s"'), $getlogin)); }
-} else {
-    &warn (sprintf (_g('no utmp entry available and LOGNAME not defined; using uid of process (%d)'), $<));
-    @fowner = getpwuid ($<);
-    if (! @fowner) { die (sprintf (_g('unable to get login information for uid %d'), $<)); }
+    return @fowner;
 }
-@fowner = @fowner[2,3];
 
 sub capit {
     my @pieces = map { ucfirst(lc) } split /-/, $_[0];
index 93f724710329d529be37f142ed336a6e7802bd4b..0adb63becaee420b12e0d1103e2f5e0dc0c767f1 100755 (executable)
@@ -60,7 +60,7 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
 
 $fileslistfile="./$fileslistfile" if $fileslistfile =~ m/^\s/;
 open(Y,"> $fileslistfile.new") || &syserr(_g("open new files list file"));
-chown(@fowner, "$fileslistfile.new") 
+chown(getfowner(), "$fileslistfile.new") 
                || &syserr(_g("chown new files list file"));
 if (open(X,"< $fileslistfile")) {
     while (<X>) {
index 42401f510a3c0c72aa1920545b7f3c469eeee0ca..f52b4d9065ccd27f9283857f1b53459dc1778211 100755 (executable)
@@ -255,7 +255,7 @@ for $f (keys %remove) { delete $f{&capit($f)}; }
 $fileslistfile="./$fileslistfile" if $fileslistfile =~ m/^\s/;
 open(Y,"> $fileslistfile.new") || &syserr(_g("open new files list file"));
 binmode(Y);
-chown(@fowner, "$fileslistfile.new") 
+chown(getfowner(), "$fileslistfile.new") 
                || &syserr(_g("chown new files list file"));
 if (open(X,"< $fileslistfile")) {
     binmode(X);
index ff4f4243d76218daf7fb166228c1eede8fa59438..7869caffe7fd310d3edd9fddd6f4a397dddfaf8e 100755 (executable)
@@ -395,7 +395,7 @@ if (!$stdout) {
     open(Y,"> $varlistfile.new") ||
         syserr(sprintf(_g("open new substvars file \`%s'"), "$varlistfile.new"));
     unless ($REAL_USER_ID) {
-       chown(@fowner, "$varlistfile.new") ||
+       chown(getfowner(), "$varlistfile.new") ||
            syserr(sprintf(_g("chown of \`%s'"), "$varlistfile.new"));
     }
     if (open(X,"< $varlistfile")) {
index b2ee7ff4766c7c5cd9cd4bfa360300e1353950f5..09fb291aaaeda57f9291b9b6a4db98f2ab8033a5 100755 (executable)
@@ -749,7 +749,7 @@ if ($opmode eq 'build') {
        system "chmod", "g-s", $tmp;
        printf(_g("%s: unpacking %s")."\n", $progname, $tarfile);
        extracttar("$dscdir/$tarfile",$tmp,$t);
-       system "chown", '-R', '-f', join(':',@fowner), "$tmp/$t";
+       system "chown", '-R', '-f', join(':', getfowner()), "$tmp/$t";
        rename("$tmp/$t",$target)
            || &syserr(sprintf(_g("unable to rename `%s' to `%s'"), "$tmp/$t", $target));
        rmdir($tmp)