Mageia Bugzilla – Attachment 8342 Details for
Bug 17616
autologin cannot be disabled with LXDM
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
[patch]
rebased on master + pass perl_checker
17616-1.diff (text/plain), 2.55 KB, created by
Thierry Vignaud
on 2016-08-13 02:27:56 CEST
(
hide
)
Description:
rebased on master + pass perl_checker
Filename:
MIME Type:
Creator:
Thierry Vignaud
Created:
2016-08-13 02:27:56 CEST
Size:
2.55 KB
patch
obsolete
>diff --git a/perl-install/any.pm b/perl-install/any.pm >index 1cf6d38..9543c4a 100644 >--- a/perl-install/any.pm >+++ b/perl-install/any.pm >@@ -680,6 +680,7 @@ sub get_autologin() { > my $gdm_file = "$::prefix/etc/X11/gdm/custom.conf"; > my $sddm_file = "$::prefix/etc/sddm.conf"; > my $lightdm_conffile = "$::prefix/etc/lightdm/lightdm.conf.d/50-mageia-autologin.conf"; >+ my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf"; > my $autologin_file = "$::prefix/etc/sysconfig/autologin"; > my $desktop = $desktop{DESKTOP} || first(sessions()); > my %desktop_to_dm = ( >@@ -708,6 +709,10 @@ sub get_autologin() { > } elsif ($dm eq "lightdm") { > my %conf = read_gnomekderc($lightdm_conffile, 'Seat:*'); > $autologin_user = text2bool($conf{'#dummy-autologin'}) && $conf{"autologin-user"}; >+ } elsif ($dm eq "lxdm") { >+ my %conf = read_gnomekderc($lxdm_conffile, 'base'); >+ $autologin_user = $conf{autologin}; >+ $autologin_user =~ s/^.//; > } else { > my %conf = getVarsFromSh($autologin_file); > $autologin_user = text2bool($conf{AUTOLOGIN}) && $conf{USER}; >@@ -718,7 +723,7 @@ sub get_autologin() { > > sub is_standalone_autologin_needed { > my ($dm) = @_; >- return member($dm, qw(lxdm slim xdm)); >+ return member($dm, qw(slim xdm)); > } > > sub set_autologin { >@@ -755,8 +760,28 @@ sub set_autologin { > 'autologin-user' => $autologin->{user} > )) } if -e $lightdm_conffile; > >+ #- Configure LXDM >+ my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf"; >+ eval { update_gnomekderc($lxdm_conffile, 'base' => ( >+# if_($autologin->{user}, 'autologin' => '@' . $autologin->{user}) >+ )); >+ if ($autologin->{user} && $autologin->{desktop} && !member($autologin->{desktop}, qw(default failsafe))) { >+ my $xsession_file = $autologin->{desktop}; >+ foreach my $file (glob("$::prefix/usr/share/xsessions/*.desktop")) { >+ my %xsession = read_gnomekderc($file, 'Desktop Entry'); >+ if ($xsession{Name} eq $autologin->{desktop}) { >+ $xsession_file = $file; >+ $xsession_file =~ s!\.[^.]+$!!; >+ last; >+ } >+ } >+ update_gnomekderc($lxdm_conffile, $autologin->{user} => ( >+ 'user' => $autologin->{user}, >+ 'session' => $xsession_file, >+ 'lang' => '' >+ )) } } if -e $lxdm_conffile; >+ > my $xdm_autologin_cfg = "$::prefix/etc/sysconfig/autologin"; >- # TODO: configure lxdm in /etx/lxdm/lxdm.conf > if (is_standalone_autologin_needed($autologin->{dm})) { > setVarsInShMode($xdm_autologin_cfg, 0644, > { USER => $autologin->{user}, AUTOLOGIN => bool2yesno($autologin->{user}), EXEC => '/usr/bin/startx.autologin' });
diff --git a/perl-install/any.pm b/perl-install/any.pm index 1cf6d38..9543c4a 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -680,6 +680,7 @@ sub get_autologin() { my $gdm_file = "$::prefix/etc/X11/gdm/custom.conf"; my $sddm_file = "$::prefix/etc/sddm.conf"; my $lightdm_conffile = "$::prefix/etc/lightdm/lightdm.conf.d/50-mageia-autologin.conf"; + my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf"; my $autologin_file = "$::prefix/etc/sysconfig/autologin"; my $desktop = $desktop{DESKTOP} || first(sessions()); my %desktop_to_dm = ( @@ -708,6 +709,10 @@ sub get_autologin() { } elsif ($dm eq "lightdm") { my %conf = read_gnomekderc($lightdm_conffile, 'Seat:*'); $autologin_user = text2bool($conf{'#dummy-autologin'}) && $conf{"autologin-user"}; + } elsif ($dm eq "lxdm") { + my %conf = read_gnomekderc($lxdm_conffile, 'base'); + $autologin_user = $conf{autologin}; + $autologin_user =~ s/^.//; } else { my %conf = getVarsFromSh($autologin_file); $autologin_user = text2bool($conf{AUTOLOGIN}) && $conf{USER}; @@ -718,7 +723,7 @@ sub get_autologin() { sub is_standalone_autologin_needed { my ($dm) = @_; - return member($dm, qw(lxdm slim xdm)); + return member($dm, qw(slim xdm)); } sub set_autologin { @@ -755,8 +760,28 @@ sub set_autologin { 'autologin-user' => $autologin->{user} )) } if -e $lightdm_conffile; + #- Configure LXDM + my $lxdm_conffile = "$::prefix/etc/lxdm/lxdm.conf"; + eval { update_gnomekderc($lxdm_conffile, 'base' => ( +# if_($autologin->{user}, 'autologin' => '@' . $autologin->{user}) + )); + if ($autologin->{user} && $autologin->{desktop} && !member($autologin->{desktop}, qw(default failsafe))) { + my $xsession_file = $autologin->{desktop}; + foreach my $file (glob("$::prefix/usr/share/xsessions/*.desktop")) { + my %xsession = read_gnomekderc($file, 'Desktop Entry'); + if ($xsession{Name} eq $autologin->{desktop}) { + $xsession_file = $file; + $xsession_file =~ s!\.[^.]+$!!; + last; + } + } + update_gnomekderc($lxdm_conffile, $autologin->{user} => ( + 'user' => $autologin->{user}, + 'session' => $xsession_file, + 'lang' => '' + )) } } if -e $lxdm_conffile; + my $xdm_autologin_cfg = "$::prefix/etc/sysconfig/autologin"; - # TODO: configure lxdm in /etx/lxdm/lxdm.conf if (is_standalone_autologin_needed($autologin->{dm})) { setVarsInShMode($xdm_autologin_cfg, 0644, { USER => $autologin->{user}, AUTOLOGIN => bool2yesno($autologin->{user}), EXEC => '/usr/bin/startx.autologin' });
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 17616
:
7399
|
7405
|
7406
| 8342 |
8343
|
8632