Author: jsuchome Date: Mon Feb 9 14:41:14 2009 New Revision: 55355 URL: http://svn.opensuse.org/viewcvs/yast?rev=55355&view=rev Log: - added new logging functions which should produce human readable log file (fate#100386) - 2.18.2 Modified: trunk/users/VERSION trunk/users/package/yast2-users.changes trunk/users/src/Users.pm trunk/users/src/UsersLDAP.pm trunk/users/src/UsersPasswd.pm trunk/users/src/UsersRoutines.pm trunk/users/src/groups.ycp trunk/users/src/users.ycp trunk/users/testsuite/tests/EditUser.out trunk/users/testsuite/tests/YaPIGroupAdd.out trunk/users/yast2-users.spec.in Modified: trunk/users/VERSION URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/VERSION?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/VERSION (original) +++ trunk/users/VERSION Mon Feb 9 14:41:14 2009 @@ -1 +1 @@ -2.18.1 +2.18.2 Modified: trunk/users/package/yast2-users.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/package/yast2-users.changes?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/package/yast2-users.changes (original) +++ trunk/users/package/yast2-users.changes Mon Feb 9 14:41:14 2009 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Mon Feb 9 12:47:40 CET 2009 - jsuchome@suse.cz + +- added new logging functions which should produce human readable + log file (fate#100386) +- 2.18.2 + +------------------------------------------------------------------- Wed Feb 4 15:21:48 CET 2009 - jsuchome@suse.cz - read objectClass for LDAP users every time (bnc#471971) Modified: trunk/users/src/Users.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/Users.pm?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/Users.pm (original) +++ trunk/users/src/Users.pm Mon Feb 9 14:41:14 2009 @@ -3556,13 +3556,17 @@ foreach my $group (keys %grouplist) { %group_in_work = %{$self->GetGroupByName ($group, "")}; if (%group_in_work) { + my $commit_group = 0; # username changed - remove org_username if ($org_username ne $username) { - $self->RemoveUserFromGroup ($org_username); + if ($self->RemoveUserFromGroup ($org_username)) { + $commit_group = 1; + } } if ($self->AddUserToGroup ($username)) { - $self->CommitGroup (); - } + $commit_group = 1; + } + $self->CommitGroup () if $commit_group; } }; @@ -3932,9 +3936,11 @@ YaST::YCP::Boolean ($not_ask_uppercase); $customs{"dont_warn_when_nisserver_notdes"} = YaST::YCP::Boolean ($not_ask_nisserver_notdes); - my $ret = SCR->Write (".target.ycp", Directory->vardir()."/users.ycp", \%customs); + my $file = Directory->vardir()."/users.ycp"; + my $ret = SCR->Write (".target.ycp", $file, \%customs); y2milestone ("Custom user information written: ", $ret); + y2usernote ("Custom user information written: '$file'"); return $ret; } @@ -3954,6 +3960,7 @@ SCR->Write (".etc.default.useradd", "force"); } y2milestone ("Succesfully written useradd defaults: $ret"); + y2usernote ("File '/etc/default/useradd' was modified."); return $ret; } @@ -3968,6 +3975,7 @@ SCR->Write (".etc.login_defs", "force"); } y2milestone ("Succesfully written /etc/login.defs: $ret"); + y2usernote ("File '/etc/login.defs' was modified."); return $ret; } @@ -3998,31 +4006,52 @@ BEGIN { $TYPEINFO{WriteGroup} = ["function", "boolean"]; } sub WriteGroup { - if (SCR->Execute (".target.bash", "/bin/cp $base_directory/group $base_directory/group.YaST2save") != 0) + my $cmd = "/bin/cp $base_directory/group $base_directory/group.YaST2save"; + if (SCR->Execute (".target.bash", $cmd) != 0) { + y2error ("creating backup of $base_directory/group failed"); return 0; } - return UsersPasswd->WriteGroups (\%groups); + y2usernote ("Backup created: '$cmd'"); + my $ret = UsersPasswd->WriteGroups (\%groups); + $cmd = "diff -U 1 $base_directory/group.YaST2save $base_directory/group"; + my $out = SCR->Execute (".target.bash_output", $cmd); + my $stdout = $out->{"stdout"} || ""; + y2usernote ("Comparing original and new version: +$stdout`"); + return $ret; } ##------------------------------------ BEGIN { $TYPEINFO{WritePasswd} = ["function", "boolean"]; } sub WritePasswd { - if (SCR->Execute (".target.bash", "/bin/cp $base_directory/passwd $base_directory/passwd.YaST2save") != 0) + my $cmd = "/bin/cp $base_directory/passwd $base_directory/passwd.YaST2save"; + if (SCR->Execute (".target.bash", $cmd) != 0) { + y2error ("creating backup of $base_directory/passwd failed"); return 0; } - return UsersPasswd->WriteUsers (\%users); + y2usernote ("Backup created: '$cmd'"); + my $ret = UsersPasswd->WriteUsers (\%users); + $cmd = "diff -U 1 $base_directory/passwd.YaST2save $base_directory/passwd"; + my $out = SCR->Execute (".target.bash_output", $cmd); + my $stdout = $out->{"stdout"} || ""; + y2usernote ("Comparing original and new version: +$stdout`"); + return $ret; } ##------------------------------------ BEGIN { $TYPEINFO{WriteShadow} = ["function", "boolean"]; } sub WriteShadow { - if (SCR->Execute (".target.bash", "/bin/cp $base_directory/shadow $base_directory/shadow.YaST2save") != 0) + my $cmd = "/bin/cp $base_directory/shadow $base_directory/shadow.YaST2save"; + if (SCR->Execute (".target.bash", $cmd) != 0) { + y2error ("creating backup of $base_directory/shadow failed"); return 0; } + y2usernote ("Backup created: '$cmd'"); return UsersPasswd->WriteShadow (\%shadow); } @@ -4045,6 +4074,7 @@ my $cmd = sprintf ("$userdel_precmd $username %i %i %s", $user{"uidNumber"}, $user{"gidNumber"}, $user{"homeDirectory"}); SCR->Execute (".target.bash", $cmd); + y2usernote ("User pre-deletion script called: '$cmd'"); }; }; return $ret; @@ -4095,6 +4125,7 @@ }; my $result = UsersPlugins->Apply ("Write", $args, \%user); $plugin_error = GetPluginError ($args, $result); + y2usernote ("User post-deletion script called: '$cmd'"); }; }; return $ret; @@ -4439,7 +4470,8 @@ $nscd_passwd = 1; } - # check for homedir changes + # check for homedir changes, + # and while going through modified users, log what was done to the user log (y2usernote) foreach my $type (keys %modified_users) { if ($type eq "ldap") { next; #rest of work with homes for LDAP are ruled in WriteLDAP @@ -4460,6 +4492,9 @@ $users_with_crypted_dir{$username} = \%user; } if ($user_mod eq "imported" || $user_mod eq "added") { + + y2usernote ("User '$username' created"); + if ($user_mod eq "imported" && FileUtils->Exists ($home)) { y2milestone ("home directory $home of user $username already exists"); next; @@ -4488,7 +4523,16 @@ push @useradd_postcommands, $command; } } - elsif ($user_mod eq "edited" && $home ne "/var/lib/nobody") { + if ($user_mod eq "edited") { + my $org_username = $user{"org_user"}{"uid"} || $username; + if ($username ne $org_username) { + y2usernote ("User '$org_username' renamed to '$username'"); + } + else { + y2usernote ("User '$username' modified"); + } + } + if ($user_mod eq "edited" && $home ne "/var/lib/nobody") { my $org_home = $user{"org_user"}{"homeDirectory"} || $home; my $org_uid = $user{"org_user"}{"uidNumber"} || $uid; # chown only when directory was changed (#39417) @@ -4537,10 +4581,14 @@ # remove the passwd cache for nscd (bug 24748, 41648) if (!$write_only && Package->Installed ("nscd")) { if ($nscd_passwd) { - SCR->Execute (".target.bash", "/usr/sbin/nscd -i passwd"); + my $cmd = "/usr/sbin/nscd -i passwd"; + SCR->Execute (".target.bash", $cmd); + y2usernote ("nscd cache invalidated: '$cmd'"); } if ($nscd_group) { - SCR->Execute (".target.bash", "/usr/sbin/nscd -i group"); + my $cmd = "/usr/sbin/nscd -i group"; + SCR->Execute (".target.bash", $cmd); + y2usernote ("nscd cache invalidated: '$cmd'"); } } @@ -4574,7 +4622,8 @@ delete $modified_users{"system"}; } if ($groups_modified) { - # -------------------------------------- call Write on plugins + # -------------------------------------- call Write on plugins, + # (+do some other work while looping over groups) foreach my $type (keys %modified_groups) { if ($type eq "ldap") { next; } foreach my $groupname (keys %{$modified_groups{$type}}) { @@ -4587,16 +4636,30 @@ my $result = UsersPlugins->Apply ("Write", $args, $modified_groups{$type}{$groupname}); $plugin_error = GetPluginError ($args, $result); + + my $group = $modified_groups{$type}{$groupname}; + my $mod = $group->{"modified"} || "no"; # store commands for calling groupadd_cmd script if ($groupadd_cmd ne "" && FileUtils->Exists ($groupadd_cmd)) { - my $group = $modified_groups{$type}{$groupname}; - my $mod = $group->{"modified"} || "no"; if ($mod eq "imported" || $mod eq "added") { my $cmd = sprintf ("%s %s", $groupadd_cmd, $groupname); push @groupadd_postcommands, $cmd; } } + # now, log what was done to current modified group + if ($mod eq "imported" || $mod eq "added") { + y2usernote ("Group '$groupname' created"); + } + elsif ($mod eq "edited") { + my $org_groupname = $group->{"org_group"}{"cn"} || $groupname; + if ($groupname ne $org_groupname) { + y2usernote ("Group '$org_groupname' renamed to '$groupname'"); + } + else { + y2usernote ("Group '$groupname' modified"); + } + } } # unset the 'modified' flags after write $self->UpdateGroupsAfterWrite ("local"); @@ -4612,11 +4675,14 @@ # call make on NIS server if (($users_modified || $groups_modified) && $nis_master) { - my %out = %{SCR->Execute (".target.bash_output", - "/usr/bin/make -C /var/yp")}; + my $cmd = "/usr/bin/make -C /var/yp"; + my %out = %{SCR->Execute (".target.bash_output", $cmd)}; if (!defined ($out{"exit"}) || $out{"exit"} != 0) { y2error ("Cannot make NIS database: ", %out); } + else { + y2usernote ("NIS server database rebuilt: '$cmd'"); + } } # complete adding groups @@ -4624,6 +4690,7 @@ foreach my $command (@groupadd_postcommands) { y2milestone ("'$command' returns: ", SCR->Execute (".target.bash", $command)); + y2usernote ("Group post-add script called: '$command'"); } } @@ -4640,6 +4707,7 @@ foreach my $command (@useradd_postcommands) { y2milestone ("'$command' returns: ", SCR->Execute (".target.bash", $command)); + y2usernote ("User post-add script called: '$command'"); } } Modified: trunk/users/src/UsersLDAP.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersLDAP.pm?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/UsersLDAP.pm (original) +++ trunk/users/src/UsersLDAP.pm Mon Feb 9 14:41:14 2009 @@ -1413,16 +1413,20 @@ } } } + y2usernote ("LDAP user '$username' was created."); } } elsif ($action eq "deleted") { if (! SCR->Write (".ldap.delete", \%arg_map)) { %ret = %{Ldap->LDAPErrorMap ()}; } - elsif ($server && $delete_home) { - UsersRoutines->DeleteHome ($home); - UsersRoutines->DeleteCryptedHome ($home, $org_username); - } + else { + if ($server && $delete_home) { + UsersRoutines->DeleteHome ($home); + UsersRoutines->DeleteCryptedHome ($home, $org_username); + } + y2usernote ("LDAP user '$username' was deleted."); + } } elsif ($action eq "edited") { # if there are some attributes with empty values, agent should @@ -1458,6 +1462,7 @@ UsersRoutines->ChownHome ($uid, $gid, $home); } } + y2usernote ("LDAP user '$username' was modified."); } } if (defined $ret{"msg"}) { @@ -1661,14 +1666,20 @@ if (!SCR->Write (".ldap.add",\%arg_map,$self->ConvertMap($group))) { %ret = %{Ldap->LDAPErrorMap ()}; } - elsif ($gid > $last_id) { - $last_id = $gid; + else { + if ($gid > $last_id) { + $last_id = $gid; + } + y2usernote ("LDAP group '$groupname' was created."); } } elsif ($action eq "deleted") { if (!SCR->Write (".ldap.delete", \%arg_map)) { %ret = %{Ldap->LDAPErrorMap ()}; } + else { + y2usernote ("LDAP group '$groupname' was deleted."); + } } elsif ($action eq "edited") { @@ -1682,8 +1693,11 @@ if (!SCR->Write (".ldap.modify", \%arg_map, $self->ConvertMap($group))) { %ret = %{Ldap->LDAPErrorMap ()}; } - elsif ($gid > $last_id) { - $last_id = $gid; + else { + if ($gid > $last_id) { + $last_id = $gid; + } + y2usernote ("LDAP group '$groupname' was modified."); } } if (defined $ret{"msg"}) { Modified: trunk/users/src/UsersPasswd.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersPasswd.pm?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/UsersPasswd.pm (original) +++ trunk/users/src/UsersPasswd.pm Mon Feb 9 14:41:14 2009 @@ -715,8 +715,9 @@ $out = $out."$plusline\n"; } } - SCR->Write (".target.string", $file, $out); - return 1; + my $ret = SCR->Write (".target.string", $file, $out); + y2usernote ("File written: '$file'"); + return $ret; } #-------------------------------------------- @@ -782,7 +783,9 @@ $out = $out."$plusline\n"; } } - return SCR->Write (".target.string", $file, $out); + my $ret = SCR->Write (".target.string", $file, $out); + y2usernote ("File written: '$file'"); + return $ret; } @@ -845,7 +848,9 @@ $out = $out."$plusline\n"; } } - return SCR->Write (".target.string", $file, $out); + my $ret = SCR->Write (".target.string", $file, $out); + y2usernote ("File written: '$file'"); + return $ret; } #--------------------------------------------------------------------- Modified: trunk/users/src/UsersRoutines.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/UsersRoutines.pm?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/UsersRoutines.pm (original) +++ trunk/users/src/UsersRoutines.pm Mon Feb 9 14:41:14 2009 @@ -97,6 +97,7 @@ y2error ("error calling $command: ", $out{"stderr"} || ""); return 0; } + y2usernote ("Home directory created: '$command'."); } y2milestone ("The directory $home was successfully created."); return 1; @@ -137,6 +138,7 @@ return 0; } y2milestone ("Owner of files in $home changed to user with UID $uid"); + y2usernote ("Home directory ownership changed: '$command'"); return 1; } @@ -167,6 +169,7 @@ return 0; } y2milestone ("Mode of directory $home changed to $mode"); + y2usernote ("Home directory mode changed: '$command'"); return 1; } @@ -213,6 +216,7 @@ return 0; } y2milestone ("The directory $org_home was successfully moved to $home"); + y2usernote ("Home directory moved: '$command'"); return 1; } @@ -238,6 +242,7 @@ return 0; } y2milestone ("The directory $home was succesfully deleted"); + y2usernote ("Home directory removed: '$command'"); return 1; } @@ -260,25 +265,30 @@ my $key_path = $self->CryptedKeyPath ($username); if (%{SCR->Read (".target.stat", $key_path)}) { - my $out = SCR->Execute (".target.bash_output", "/bin/rm -rf $key_path"); + my $cmd = "/bin/rm -rf $key_path"; + my $out = SCR->Execute (".target.bash_output", $cmd); if (($out->{"exit"} || 0) ne 0) { y2error ("error while removing $key_path file: ", $out->{"stderr"} || ""); $ret = 0; } + y2usernote ("Encrypted directory key removed: '$cmd'"); } if (%{SCR->Read (".target.stat", $img_path)}) { - my $out = SCR->Execute (".target.bash_output", "/bin/rm -rf $img_path"); + my $cmd = "/bin/rm -rf $img_path"; + my $out = SCR->Execute (".target.bash_output", "/bin/rm -rf $img_path"); if (($out->{"exit"} || 0) ne 0) { y2error ("error while removing $img_path file: ", $out->{"stderr"} || ""); $ret = 0; } - my $command = "$cryptconfig pm-disable $username"; - $out = SCR->Execute (".target.bash_output", $command); + y2usernote ("Encrypted directory image removed: '$cmd'"); + $cmd = "$cryptconfig pm-disable $username"; + $out = SCR->Execute (".target.bash_output", $cmd); if ($out->{"exit"} ne 0 && $out->{"stderr"}) { - y2error ("error calling $command: ", $out->{"stderr"}); + y2error ("error calling $cmd: ", $out->{"stderr"}); Report->Error ($out->{"stderr"}); $ret = 0; } + y2usernote ("Disabled pam_mount for $username: '$cmd'"); } return $ret; } @@ -454,14 +464,17 @@ SCR->Write (".target.string", $pw_path, $new_pw); } + my $note = ""; # resize existing image if ($org_size < $home_size && defined $key_file && defined $image_file) { my $add = $home_size - $org_size; $cmd = "$cryptconfig enlarge-image --key-file=$key_file $image_file $add < $pw_path"; + $note = "Encrypted directory resized: '$cmd'"; } # create new image elsif ($home_size > $org_size) { - $cmd = "$cryptconfig make-ehd --no-verify $username $home_size < $pw_path"; + $cmd = "$cryptconfig make-ehd --no-verify $username $home_size < $pw_path"; + $note = "Encrypted directory created: '$cmd'"; } # ok, only password change was needed else { @@ -476,6 +489,8 @@ Report->Error ($out->{"stderr"}); } SCR->Execute (".target.remove", $pw_path); + $note =~ s/ [^ ]+$/ (password)/; # hide password in the log + y2usernote ($note); return 1; } Modified: trunk/users/src/groups.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/groups.ycp?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/groups.ycp (original) +++ trunk/users/src/groups.ycp Mon Feb 9 14:41:14 2009 @@ -21,6 +21,7 @@ y2milestone ("----------------------------------------"); y2milestone ("Users module started"); +y2useritem ("User and Group Management module started"); import "CommandLine"; import "Mode"; @@ -188,6 +189,7 @@ ret = CommandLine::Run (cmdline); +y2useritem ("User and Group Management module finished"); y2milestone("Users module finished with %1", ret); y2milestone("----------------------------------------"); return ret; Modified: trunk/users/src/users.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/src/users.ycp?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/src/users.ycp (original) +++ trunk/users/src/users.ycp Mon Feb 9 14:41:14 2009 @@ -14,6 +14,7 @@ y2milestone ("----------------------------------------"); y2milestone ("Users module started"); +y2useritem ("User and Group Management module started"); import "CommandLine"; import "Ldap"; @@ -218,7 +219,7 @@ ret = CommandLine::Run (cmdline); -/* Finish */ +y2useritem ("User and Group Management module finished"); y2milestone("Users module finished with %1", ret); y2milestone("----------------------------------------"); return ret; Modified: trunk/users/testsuite/tests/EditUser.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/testsuite/tests/EditUser.out?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/testsuite/tests/EditUser.out (original) +++ trunk/users/testsuite/tests/EditUser.out Mon Feb 9 14:41:14 2009 @@ -28,6 +28,7 @@ Return nil Execute .target.bash "/bin/cp /etc/passwd /etc/passwd.YaST2save" 0 Write .target.string "/etc/passwd" "at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash\nbin:x:1:1:bin:/bin:/bin/bash\ndaemon:x:2:2:Daemon:/sbin:/bin/bash\nmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false\nnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash\nroot:x:0:0:root:/root:/bin/bash\nuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash\nhh:x:501:100:HaHa:/home/hh:/bin/bash\nii:x:555:100:Test user:/home/ii:/bin/bash\n+::::::\n" true +Execute .target.bash_output "diff -U 1 /etc/passwd.YaST2save /etc/passwd" $["stdout":"hh"] Read .target.stat "/home" $["isdir":true] Read .target.stat "/home/hh" $["isdir":true] Read .target.stat "/home/hh" $["isdir":true] @@ -55,6 +56,7 @@ Return true Execute .target.bash "/bin/cp /etc/passwd /etc/passwd.YaST2save" 0 Write .target.string "/etc/passwd" "at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash\nbin:x:1:1:bin:/bin:/bin/bash\ndaemon:x:2:2:Daemon:/sbin:/bin/bash\nmail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false\nnobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash\nroot:x:0:0:root:/root:/bin/bash\nuucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash\nhh:x:501:100:HaHa:/new/home/hh:/bin/bash\nii:x:555:100:Test user:/home/ii:/bin/bash\n+::::::\n" true +Execute .target.bash_output "diff -U 1 /etc/passwd.YaST2save /etc/passwd" $["stdout":"hh"] Read .target.stat "/new/home" $[] Execute .target.mkdir "/new/home" 0 Read .target.stat "/new/home/hh" $[] Modified: trunk/users/testsuite/tests/YaPIGroupAdd.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/testsuite/tests/YaPIGroupAdd.out?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/testsuite/tests/YaPIGroupAdd.out (original) +++ trunk/users/testsuite/tests/YaPIGroupAdd.out Mon Feb 9 14:41:14 2009 @@ -16,6 +16,7 @@ Execute .target.bash_output "echo 'gg' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"gg"] Execute .target.bash "/bin/cp /etc/group /etc/group.YaST2save" 0 Write .target.string "/etc/group" "audio:x:17:ii\nnobody:x:65533:\nroot:x:0:\ngg:x:1000:\nusers:x:100:\n+:::\n" true +Execute .target.bash_output "diff -U 1 /etc/group.YaST2save /etc/group" $["stdout":"gg"] Execute .target.bash "/usr/sbin/nscd -i group" 0 Write .target.ycp "/var/lib/YaST2/users.ycp" $["custom_groups":["local"], "custom_users":["local"], "dont_warn_when_nisserver_notdes":false, "dont_warn_when_uppercase":false] true Return @@ -35,6 +36,7 @@ Execute .target.bash_output "echo 'gg2' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"gg2"] Execute .target.bash "/bin/cp /etc/group /etc/group.YaST2save" 0 Write .target.string "/etc/group" "audio:x:17:ii\nnobody:x:65533:\nroot:x:0:\ngg:x:1000:\ngg2:x:1001:hh1,hh2\nusers:x:100:\n+:::\n" true +Execute .target.bash_output "diff -U 1 /etc/group.YaST2save /etc/group" $["stdout":"gg2"] Execute .target.bash "/usr/sbin/nscd -i group" 0 Write .target.ycp "/var/lib/YaST2/users.ycp" $["custom_groups":["local"], "custom_users":["local"], "dont_warn_when_nisserver_notdes":false, "dont_warn_when_uppercase":false] true Return @@ -54,6 +56,7 @@ Execute .target.bash_output "echo 'gg3' | grep '^[[:alpha:]_][[:alnum:]_.-]*[[:alnum:]_.$-]\\?$'" $["LANG":"C"] $["stdout":"gg3"] Execute .target.bash "/bin/cp /etc/group /etc/group.YaST2save" 0 Write .target.string "/etc/group" "audio:x:17:ii\nnobody:x:65533:\nroot:x:0:\ngg:x:1000:\ngg2:x:1001:hh1,hh2\ngg3:x:1002:hh1,hh2\nusers:x:100:\n+:::\n" true +Execute .target.bash_output "diff -U 1 /etc/group.YaST2save /etc/group" $["stdout":"gg3"] Execute .target.bash "/usr/sbin/nscd -i group" 0 Write .target.ycp "/var/lib/YaST2/users.ycp" $["custom_groups":["local"], "custom_users":["local"], "dont_warn_when_nisserver_notdes":false, "dont_warn_when_uppercase":false] true Return Modified: trunk/users/yast2-users.spec.in URL: http://svn.opensuse.org/viewcvs/yast/trunk/users/yast2-users.spec.in?rev=55355&r1=55354&r2=55355&view=diff ============================================================================== --- trunk/users/yast2-users.spec.in (original) +++ trunk/users/yast2-users.spec.in Mon Feb 9 14:41:14 2009 @@ -3,10 +3,13 @@ @HEADER@ BuildRequires: cracklib-devel doxygen gcc-c++ perl-Digest-SHA1 perl-XML-Writer update-desktop-files yast2 yast2-devtools yast2-ldap-client yast2-perl-bindings yast2-security yast2-testsuite yast2-core-devel -Requires: yast2-perl-bindings yast2-country yast2-pam yast2-security cracklib perl-Digest-SHA1 perl-X500-DN perl-gettext +Requires: yast2-country yast2-pam yast2-security cracklib perl-Digest-SHA1 perl-X500-DN perl-gettext Obsoletes: yast2-config-users y2c_users yast2-trans-users y2t_users yast2-trans-inst-user yast2-trans-users y2t_inst-user Provides: yast2-config-users y2c_users yast2-trans-users y2t_users yast2-trans-inst-user yast2-trans-users y2t_inst-user +# y2usernote, y2useritem +Requires: yast2-perl-bindings >= 2.18.0 + # this forces using yast2-ldap with orrect LDAP object names (fate#303596) Requires: yast2-ldap-client >= 2.17.1 -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org