Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs1:/tmp/cvs-serv11244/perlmod/Fink
Modified Files:
Tag: uidgid
ChangeLog PkgVersion.pm User.pm
Log Message:
Making changes for new style user/group handling
Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.310.2.3
retrieving revision 1.310.2.4
diff -u -d -r1.310.2.3 -r1.310.2.4
--- ChangeLog 11 Aug 2003 16:17:57 -0000 1.310.2.3
+++ ChangeLog 11 Aug 2003 19:47:49 -0000 1.310.2.4
@@ -1,4 +1,12 @@
-2003-08-09 Justin F. Hallett <[EMAIL PROTECTED]>
+2003-08-11 Justin F. Hallett <[EMAIL PROTECTED]>
+
+ * PkgVersion.pm: Completly change how we will handle users and groups
+ firstly pkgs that require user/group will depends on user-<user>
+ and group-<group>, which will create and maintain the info for that
+ user and group.
+ * User.pm: Made changes to accomadate teh new style of user/group
handling.
+
+2003-08-11 Justin F. Hallett <[EMAIL PROTECTED]>
* PkgVersion.pm: moved where the scripts are built to top of
script processing.
Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.128.8.4
retrieving revision 1.128.8.5
diff -u -d -r1.128.8.4 -r1.128.8.5
--- PkgVersion.pm 11 Aug 2003 16:27:59 -0000 1.128.8.4
+++ PkgVersion.pm 11 Aug 2003 19:47:50 -0000 1.128.8.5
@@ -78,6 +78,12 @@
$self->{_perlversion} = $1;
$self->{_type} = $type;
}
+ ### make type "user" and/or "group" equal to bundle
+ if ($self->{_type} eq "user") {
+ $self->{_type} = $type = "bundle";
+ } elsif ($self->{_type} eq "group") {
+ $self->{_type} = $type = "bundle";
+ }
# the following is set by Fink::Package::scan
$self->{_filename} = $filename = $self->{thefilename};
@@ -1064,9 +1070,6 @@
}
}
- ### Add check for User/Group
- ### FIXME
-
# Determine the name of the TarFilesRename in the case of multi
tarball packages
if ($i < 2) {
$renamefield = "TarFilesRename";
@@ -1639,59 +1642,45 @@
$scriptbody = "";
### Check for Group/User, if exists then process
- if ($self->has_param("Group") || $self->has_param("User")) {
- my ($name, $type) = (0, 0);
- my ($desc, $pass, $shell, $home, $group, $tmp);
+ if ($self->has_param("Group") || $self->has_param("User")) {
+ ### Add user/group check to preinst if needed
+ if ($scriptname eq "preinst" && $self->{_type} = "bundle") {
+ my ($name, $type) = (0, 0);
+ my ($desc, $pass, $shell, $home, $group, $tmp);
- ### Need to process group first since user might depend on it
- if ($self->has_param("Group")) {
- $tmp = $self->param("Group");
- $tmp = &expand_percent($tmp, $self->{_expand});
- ($name, $desc, $pass) = split(/:/, $tmp);
- $type = "group";
- } elsif ($self->has_param("User")) {
- $tmp = $self->param("User");
- $tmp = &expand_percent($tmp, $self->{_expand});
- ($name, $group, $desc, $pass, $shell, $home) =
- split(/:/, $tmp);
- $type = "user";
- }
- ### Add user/group check to preinst if needed
- if ($scriptname eq "preinst") {
+ if ($self->has_param("Group")) {
+ $tmp = $self->param("Group");
+ $tmp = &expand_percent($tmp, $self->{_expand});
+ ($name, $desc, $pass) = split(/:/, $tmp);
+ $type = "group";
+ } elsif ($self->has_param("User")) {
+ $tmp = $self->param("User");
+ $tmp = &expand_percent($tmp, $self->{_expand});
+ ($name, $group, $desc, $pass, $shell, $home) =
+ split(/:/, $tmp);
+ $type = "user";
+ }
- my $script = Fink::User->add_user_script($name, $type,
- $desc, $pass, $shell, $home, $group);
+ my $script = Fink::User->add_user_script($name, $type,
+ $desc, $pass, $shell, $home, $group);
- if ($script) {
- ### Add $script to top of preinstscript
- $script .= "\n";
- $scriptbody = $script;
- }
- }
+ if ($script) {
+ ### Add $script to top of preinstscript
+ $script .= "\n";
+ $scriptbody = $script;
+ }
+ }
- ### Add chown script to postinst script if needed
- if ($scriptname eq "postinst") {
- my $script = Fink::User->get_perms($ddir, $name, $type,
- $desc, $pass, $shell, $home, $group);
+ ### Add chown script to postinst script if needed
+ if ($scriptname eq "postinst") {
+ my $script = Fink::User->get_perms($ddir);
- if ($script) {
- ### Add $script to top of postinstscript
- $script .= "\n";
- $scriptbody = $script;
- }
- }
-
- ### Add remove user/group check/script if needed
- if ($scriptname eq "postrm") {
- ### FIXME need to figure out a script for this.
- my script = Fink::User->remove_user_script($name, $type);
-
- if ($script) {
- ### Add check to remove user/group to top of postrm
- $script .= "\n";
- $scriptbody = $script;
- }
- }
+ if ($script) {
+ ### Add $script to top of postinstscript
+ $script .= "\n";
+ $scriptbody = $script;
+ }
+ }
# get script piece from package description
if ($self->has_param($scriptname."Script")) {
Index: User.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Attic/User.pm,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -u -d -r1.1.2.11 -r1.1.2.12
--- User.pm 11 Aug 2003 17:01:45 -0000 1.1.2.11
+++ User.pm 11 Aug 2003 19:47:50 -0000 1.1.2.12
@@ -65,7 +65,7 @@
my $home = shift;
my $group = shift;
- my $uid = $self->get_id("user", $user);
+ my $uid = $self->get_id("user", $user);
my $cmd = "$basepath/sbin/useradd -c $desc -d $home -e 0";
$cmd .= "-f 0 -g $group -s $shell -u $uid $user";
@@ -229,64 +229,39 @@
sub get_perms {
my $self = shift;
my $rootdir = shift;
- my $name = shift;
- my $type = shift;
- my $desc = shift;
- my $pass = shift || "";
- my $shell = shift || "/usr/bin/false";
- my $home = shift || "/tmp";
- my $group = shift || $name;
my $script = "";
- unless ($name) {
- return $script;
- }
-
- unless ($pass) {
- $pass = $self->mkpasswd();
- }
-
- unless ($self->check_for_name($type, $name, $desc, $pass, $shell,
- $home, $group)) {
- ### add user/group
- if ($type eq "user") {
- $self->add_user($name, $desc, $pass, $shell, $home, $group);
- } else {
- $self->add_group($name, $desc, $pass);
- }
- }
-
my (@filelist, @files, @users, @groups);
my ($wanted, $file, $usr, $grp);
- my ($dev, $ino, $mode, $nlink, $uid, $gid);
+ my ($dev, $ino, $mode, $nlink, $uid, $gid);
- $wanted =
- sub {
- if (-x) {
- push @filelist, $File::Find::fullname;
- }
- };
- find({ wanted => $wanted, follow => 1, no_chdir => 1 }, $rootdir);
+ $wanted =
+ sub {
+ if (-x) {
+ push @filelist, $File::Find::fullname;
+ }
+ };
+ find({ wanted => $wanted, follow => 1, no_chdir => 1 }, $rootdir);
foreach $file (@filelist) {
- ### Remove $basepath/src/root-...
- $file =~ s/^$basepath\/src\/root-.+$basepath/$basepath/g;
- ### Don't add DEBIAN dir
- next if ($file =~ /DEBIAN/);
+ ### Remove $basepath/src/root-...
+ $file =~ s/^$basepath\/src\/root-.+$basepath/$basepath/g;
+ ### Don't add DEBIAN dir
+ next if ($file =~ /DEBIAN/);
- ($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($file);
+ ($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($file);
- $usr = User::pwent::getpwuid($uid);
- $grp = User::grent::getgrgid($gid);
+ $usr = User::pwent::getpwuid($uid);
+ $grp = User::grent::getgrgid($gid);
- push(@files, $file);
- push(@users, $usr);
- push(@groups, $grp);
- }
+ push(@files, $file);
+ push(@users, $usr);
+ push(@groups, $grp);
+ }
- $file = join(":", @files);
- $usr = join (":", @users);
- $grp = join (":", @groups);
+ $file = join(":", @files);
+ $usr = join (":", @users);
+ $grp = join (":", @groups);
$self->set_perms($rootdir, $file);
@@ -297,50 +272,32 @@
### add check/add user script and then set perms
sub add_user_script {
- my $self = shift;
- my $name = shift;
- my $type = shift;
- my $desc = shift;
+ my $self = shift;
+ my $name = shift;
+ my $type = shift;
+ my $desc = shift;
my $pass = shift || "";
my $shell = shift || "/usr/bin/false";
my $home = shift || "/tmp";
my $group = shift || $name;
- my $script = "";
-
- unless ($name) {
- return $script;
- }
-
- unless ($pass) {
- $pass = $self->mkpasswd();
- }
+ my $script = "";
- ### FIXME
+ ### FIXME
- return $script;
+ return $script;
}
### Check remove user/group
sub remove_user_script {
- my $self = shift;
- my $name = shift;
- my $type = shift;
- my $script = "";
-
- ### FIXME
-
- return $script
-}
-
-### Return a passwd
-sub mkpasswd {
- $self = shift;
- $pass = "";
+ my $self = shift;
+ my $name = shift;
+ my $type = shift;
+ my $script = "";
- ### FIXME
+ ### FIXME
- return $pass;
+ return $script
}
### build script to set user/groups
@@ -357,10 +314,10 @@
my @users = split(/:/, $users);
my @groups = split(/:/, $groups);
- foreach $file (@files) {
- $script .= "chown @users[$i]:@groups[$i] $file\n";
- $i++;
- }
+ foreach $file (@files) {
+ $script .= "chown @users[$i]:@groups[$i] $file\n";
+ $i++;
+ }
return $script;
}
@@ -374,10 +331,10 @@
my @files = split(/:/, $files);
foreach $file (@files);
- if (&execute("chown root:wheel $file")) {
- die "Couldn't change ownershil of $file!\n";
- }
- }
+ if (&execute("chown root:wheel $file")) {
+ die "Couldn't change ownershil of $file!\n";
+ }
+ }
return 0;
}
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
Fink-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-commits