Adding upstream version 1.236.1.
[live-boot-grml.git] / scripts / live-bottom / 15autologin
index f15f033..12c937d 100755 (executable)
@@ -20,59 +20,95 @@ esac
 
 # live-initramfs header
 
+. /live.vars
+
+if [ -n "${NOXAUTOLOGIN}" ] || [ -z "${USERNAME}" ]
+then
+       exit 0
+fi
+
 . /scripts/live-functions
 
-log_begin_msg "Setting up automatic login..."
+log_begin_msg "Setting up automatic login"
 
 # live-initramfs script
 
-if [ -z "${NOXAUTOLOGIN}" ]
+# chroot needed to handle symlinks correctly
+if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]
 then
-
-if chroot /root [ -f /etc/gdm/gdm-cdd.conf ]; then
-    GDMCONF=/etc/gdm/gdm-cdd.conf
+       GDMCONF=/etc/gdm/gdm-cdd.conf
 else
-    GDMCONF=/etc/gdm/gdm.conf
+       GDMCONF=/etc/gdm/gdm.conf
 fi
 
-if chroot /root [ -f ${GDMCONF} ]; then
-    if [ "${BUILD_SYSTEM}" = "Debian" ]; then
-        # true hack ! -- nohar
-        chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf
-    fi
-
-    # Configure GDM autologin
-    chroot /root sed -i \
-        -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \
-        -e "s/^AutomaticLogin=.*\$/AutomaticLogin=$USERNAME/" \
-        -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \
-        -e "s/^TimedLogin=.*\$/TimedLogin=$USERNAME/" \
-        -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \
-        ${GDMCONF}
+# chroot needed to handle symlinks correctly
+if chroot /root [ -f ${GDMCONF} ]
+then
+       # true hack ! -- nohar
+       chroot /root cp /usr/share/gdm/defaults.conf /etc/gdm/gdm.conf
+
+       # Configure GDM autologin
+       chroot /root \
+       sed -i -e "s/^AutomaticLoginEnable=.*\$/AutomaticLoginEnable=true/" \
+              -e "s/^AutomaticLogin=.*\$/AutomaticLogin=${USERNAME}/" \
+              -e "s/^TimedLoginEnable=.*\$/TimedLoginEnable=true/" \
+              -e "s/^TimedLogin=.*\$/TimedLogin=${USERNAME}/" \
+              -e "s/^TimedLoginDelay=.*\$/TimedLoginDelay=10/" \
+       ${GDMCONF}
+elif [ -d /root/etc/gdm3 ]
+then
+       GDMCustomFile=/root/etc/gdm3/custom.conf
+       AutologinParameters="AutomaticLoginEnable=true\n\
+AutomaticLogin=$USERNAME\n\
+TimedLoginEnable=true\n\
+TimedLogin=$USERNAME\n\
+TimedLoginDelay=10"
+
+       # Prevent from updating if parameters already present (persistent usb
+       # key)
+       if ! $(grep -qs '\[daemon\]' $GDMCustomFile)
+       then
+               echo '[daemon]' >> $GDMCustomFile
+       fi
+
+       sed -i "s/\[daemon\]/\[daemon\]\n$AutologinParameters/" $GDMCustomFile
 fi
 
-if [ -f /root/etc/kde3/kdm/kdmrc ]; then
-    # Configure KDM autologin
-    sed -i -r \
-        -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
-        -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \
-        -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
-        /root/etc/kde3/kdm/kdmrc
-fi
+if [ -d /root/etc/default/kdm.d/ ]
+then
+       if ! grep -qs "^AUTOLOGIN" /root/etc/default/kdm.d/live-autologin
+       then
+
+cat >> /root/etc/default/kdm.d/live-autologin << EOF
+AUTOLOGINUSER=${USERNAME}
+AUTOLOGINAGAIN=true
+AUTOLOGINDELAY=0
+EOF
+
+       fi
 
+elif [ -f /root/etc/kde3/kdm/kdmrc ]
+then
+       # Configure KDM autologin
+       sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
+                 -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=${USERNAME}/" \
+                 -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
+       /root/etc/kde3/kdm/kdmrc
+elif [ -f /root/etc/kde4/kdm/kdmrc ]
+then
+       # Configure KDM-KDE4 autologin
+       sed -i -r -e "s/^#?AutoLoginEnable=.*\$/AutoLoginEnable=true/" \
+                 -e "s/^#?AutoLoginUser=.*\$/AutoLoginUser=$USERNAME/" \
+                 -e "s/^#?AutoReLogin=.*\$/AutoReLogin=true/" \
+       /root/etc/kde4/kdm/kdmrc
 fi
 
-if chroot /root /usr/bin/which kpersonalizer >/dev/null; then
-    # Disable first-login wizard for KDE
-    if [ ! -f /root/etc/kde3/kpersonalizerrc ]; then
-        cat > /root/etc/kde3/kpersonalizerrc <<EOF
-[General]
-FirstLogin=false
-EOF
-    else
-        echo "I'm not smart enough to disable kpersonalizer startup" >&2
-        echo "Because kpersonalizerrc already exists" >&2
-    fi
+if [ -f /root/etc/lxdm/lxdm.conf ]
+then
+       # Configure LXDM autologin
+       sed -i -r -e "s/^# autologin=dgod/autologin=$USERNAME/" \
+                 -e "s/^# session/session/" \
+       /root/etc/lxdm/lxdm.conf
 fi
 
 log_end_msg