[Sugar-devel] f26 soas logs in to liveuser- should be "name ( )"

Thomas Gilliard satellitgo at gmail.com
Fri Jan 27 14:17:16 EST 2017


f26 soas logs in to liveuser- ;should boot to  "name (      )"

clicking on login with no password works

How can the current kickstart be fixed to go back to expected behavior?

Tom Gilliard

satellit

https://kojipkgs.fedoraproject.org//work/tasks/9434/17409434/koji-image-f26-build-17409434.ks

#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted --lock locked
# Use network installation
url 
--url="http://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20170125.n.0/compose/Everything/$basearch/os"
# System language
lang en_US.UTF-8
# Firewall configuration
firewall --enabled --service=mdns,presence
repo --name="koji-override-0" 
--baseurl=http://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20170125.n.0/compose/Everything/$basearch/os
# Shutdown after installation
shutdown
# Network information
network  --bootproto=dhcp --device=link --activate
# System timezone
timezone US/Eastern
# System authorization information
auth --useshadow --passalgo=sha512
# SELinux configuration
selinux --enforcing

# System services
services --disabled="sshd" --enabled="NetworkManager,ModemManager"
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part / --fstype="ext4" --size=5120

%post
# FIXME: it'd be better to get this installed from a package
cat > /etc/rc.d/init.d/livesys << EOF
#!/bin/bash
#
# live: Init script for live image
#
# chkconfig: 345 00 99
# description: Init script for live image.
### BEGIN INIT INFO
# X-Start-Before: display-manager chronyd
### END INIT INFO

. /etc/init.d/functions

if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" 
]; then
     exit 0
fi

if [ -e /.liveimg-configured ] ; then
     configdone=1
fi

exists() {
     which \$1 >/dev/null 2>&1 || return
     \$*
}

livedir="LiveOS"
for arg in \`cat /proc/cmdline\` ; do
   if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then
     livedir=\${arg##rd.live.dir=}
     return
   fi
   if [ "\${arg##live_dir=}" != "\${arg}" ]; then
     livedir=\${arg##live_dir=}
     return
   fi
done

# enable swaps unless requested otherwise
swaps=\`blkid -t TYPE=swap -o device\`
if ! strstr "\`cat /proc/cmdline\`" noswap && [ -n "\$swaps" ] ; then
   for s in \$swaps ; do
     action "Enabling swap partition \$s" swapon \$s
   done
fi
if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f 
/run/initramfs/live/\${livedir}/swap.img ] ; then
   action "Enabling swap file" swapon 
/run/initramfs/live/\${livedir}/swap.img
fi

mountPersistentHome() {
   # support label/uuid
   if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" 
!= "\${homedev}" ]; then
     homedev=\`/sbin/blkid -o device -t "\$homedev"\`
   fi

   # if we're given a file rather than a blockdev, loopback it
   if [ "\${homedev##mtd}" != "\${homedev}" ]; then
     # mtd devs don't have a block device but get magic-mounted with -t 
jffs2
     mountopts="-t jffs2"
   elif [ ! -b "\$homedev" ]; then
     loopdev=\`losetup -f\`
     if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then
       action "Remounting live store r/w" mount -o remount,rw 
/run/initramfs/live
     fi
     losetup \$loopdev \$homedev
     homedev=\$loopdev
   fi

   # if it's encrypted, we need to unlock it
   if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = 
"crypto_LUKS" ]; then
     echo
     echo "Setting up encrypted /home device"
     plymouth ask-for-password --command="cryptsetup luksOpen \$homedev 
EncHome"
     homedev=/dev/mapper/EncHome
   fi

   # and finally do the mount
   mount \$mountopts \$homedev /home
   # if we have /home under what's passed for persistent home, then
   # we should make that the real /home.  useful for mtd device on olpc
   if [ -d /home/home ]; then mount --bind /home/home /home ; fi
   [ -x /sbin/restorecon ] && /sbin/restorecon /home
   if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi
}

findPersistentHome() {
   for arg in \`cat /proc/cmdline\` ; do
     if [ "\${arg##persistenthome=}" != "\${arg}" ]; then
       homedev=\${arg##persistenthome=}
       return
     fi
   done
}

if strstr "\`cat /proc/cmdline\`" persistenthome= ; then
   findPersistentHome
elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then
   homedev=/run/initramfs/live/\${livedir}/home.img
fi

# if we have a persistent /home, then we want to go ahead and mount it
if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" 
] ; then
   action "Mounting persistent /home" mountPersistentHome
fi

if [ -n "\$configdone" ]; then
   exit 0
fi

# add fedora user with no passwd
action "Adding live user" useradd \$USERADDARGS -c "Live System User" 
liveuser
passwd -d liveuser > /dev/null
usermod -aG wheel liveuser > /dev/null

# Remove root password lock
passwd -d root > /dev/null

# turn off firstboot for livecd boots
systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
systemctl stop firstboot-text.service 2> /dev/null || :
systemctl stop firstboot-graphical.service 2> /dev/null || :

# don't use prelink on a running live image
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink 
&>/dev/null || :

# turn off mdmonitor by default
systemctl --no-reload disable mdmonitor.service 2> /dev/null || :
systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || :
systemctl stop mdmonitor.service 2> /dev/null || :
systemctl stop mdmonitor-takeover.service 2> /dev/null || :

# don't enable the gnome-settings-daemon packagekit plugin
gsettings set org.gnome.software download-updates 'false' || :

# don't start cron/at as they tend to spawn things which are
# disk intensive that are painful on a live image
systemctl --no-reload disable crond.service 2> /dev/null || :
systemctl --no-reload disable atd.service 2> /dev/null || :
systemctl stop crond.service 2> /dev/null || :
systemctl stop atd.service 2> /dev/null || :

# Don't sync the system clock when running live (RHBZ #1018162)
sed -i 's/rtcsync//' /etc/chrony.conf

# Mark things as configured
touch /.liveimg-configured

# add static hostname to work around xauth bug
# https://bugzilla.redhat.com/show_bug.cgi?id=679486
# the hostname must be something else than 'localhost'
# https://bugzilla.redhat.com/show_bug.cgi?id=1370222
echo "localhost-live" > /etc/hostname

EOF

# bah, hal starts way too late
cat > /etc/rc.d/init.d/livesys-late << EOF
#!/bin/bash
#
# live: Late init script for live image
#
# chkconfig: 345 99 01
# description: Late init script for live image.

. /etc/init.d/functions

if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" 
] || [ -e /.liveimg-late-configured ] ; then
     exit 0
fi

exists() {
     which \$1 >/dev/null 2>&1 || return
     \$*
}

touch /.liveimg-late-configured

# read some variables out of /proc/cmdline
for o in \`cat /proc/cmdline\` ; do
     case \$o in
     ks=*)
         ks="--kickstart=\${o#ks=}"
         ;;
     xdriver=*)
         xdriver="\${o#xdriver=}"
         ;;
     esac
done

# if liveinst or textinst is given, start anaconda
if strstr "\`cat /proc/cmdline\`" liveinst ; then
    plymouth --quit
    /usr/sbin/liveinst \$ks
fi
if strstr "\`cat /proc/cmdline\`" textinst ; then
    plymouth --quit
    /usr/sbin/liveinst --text \$ks
fi

# configure X, allowing user to override xdriver
if [ -n "\$xdriver" ]; then
    cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
Section "Device"
     Identifier    "Videocard0"
     Driver    "\$xdriver"
EndSection
FOE
fi

EOF

chmod 755 /etc/rc.d/init.d/livesys
/sbin/restorecon /etc/rc.d/init.d/livesys
/sbin/chkconfig --add livesys

chmod 755 /etc/rc.d/init.d/livesys-late
/sbin/restorecon /etc/rc.d/init.d/livesys-late
/sbin/chkconfig --add livesys-late

# enable tmpfs for /tmp
systemctl enable tmp.mount

# make it so that we don't do writing to the overlay for things which
# are just tmpdirs/caches
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
cat >> /etc/fstab << EOF
vartmp   /var/tmp    tmpfs   defaults   0  0
EOF

# work around for poor key import UI in PackageKit
rm -f /var/lib/rpm/__db*
releasever=$(rpm -q --qf '%{version}\n' --whatprovides system-release)
basearch=$(uname -i)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
echo "Packages within this LiveCD"
rpm -qa
# Note that running rpm recreates the rpm db files which aren't needed 
or wanted
rm -f /var/lib/rpm/__db*

# go ahead and pre-make the man -k cache (#455968)
/usr/bin/mandb

# make sure there aren't core files lying around
rm -f /core*

# remove random seed, the newly installed instance should make it's own
rm -f /var/lib/systemd/random-seed

# convince readahead not to collect
# FIXME: for systemd

echo 'File created by kickstart. See systemd-update-done.service(8).' \
     | tee /etc/.updated >/var/.updated

# Drop the rescue kernel and initramfs, we don't need them on the live 
media itself.
# See bug 1317709
rm -f /boot/*-rescue*

# Disable network service here, as doing it in the services line
# fails due to RHBZ #1369794
/sbin/chkconfig network off

# Remove machine-id on pre generated images
rm -f /etc/machine-id
touch /etc/machine-id

%end

%post --nochroot
cp $INSTALL_ROOT/usr/share/licenses/*-release/* $LIVE_ROOT/

# only works on x86, x86_64
if [ "$(uname -i)" = "i386" -o "$(uname -i)" = "x86_64" ]; then
   if [ ! -d $LIVE_ROOT/LiveOS ]; then mkdir -p $LIVE_ROOT/LiveOS ; fi
   cp /usr/bin/livecd-iso-to-disk $LIVE_ROOT/LiveOS
fi

%end

%post

# Rebuild initrd for Sugar boot screen
KERNEL_VERSION=$(rpm -q kernel --qf '%{version}-%{release}.%{arch}\n')
/usr/sbin/plymouth-set-default-theme sugar
/sbin/dracut -f /boot/initramfs-$KERNEL_VERSION.img $KERNEL_VERSION

# Note that running rpm recreates the rpm db files which aren't needed 
or wanted
rm -f /var/lib/rpm/__db*

# Get proper release naming in the control panel
cat >> /boot/olpc_build << EOF
Sugar on a Stick
EOF
cat /etc/fedora-release >> /boot/olpc_build

# Add our activities to the favorites
cat > /usr/share/sugar/data/activities.defaults << EOF
org.laptop.WebActivity
org.laptop.HelpActivity
org.laptop.Chat
org.laptop.sugar.ReadActivity
org.laptop.sugar.GetBooksActivity
org.laptop.AbiWordActivity
org.laptop.TurtleArtActivity
org.laptop.Calculate
org.laptop.Clock
org.laptop.ImageViewerActivity
org.laptop.Memorize
org.laptop.physics
org.laptop.Pippy
org.laptop.RecordActivity
org.laptop.Oficina
org.laptop.StopWatchActivity
org.laptop.community.Finance
org.laptop.community.TypingTurtle
org.laptop.sugar.Jukebox
org.laptop.Words
org.eq.FotoToon
org.gnome.Labyrinth
com.laptop.Ruler
org.sugarlabs.AbacusActivity
org.sugarlabs.IRC
org.sugarlabs.InfoSlicer
org.sugarlabs.PortfolioActivity
org.sugarlabs.StoryActivity
org.sugarlabs.VisualMatchActivity
com.garycmartin.Moon
mulawa.Countries
tv.alterna.Clock
vu.lux.olpc.Maze
vu.lux.olpc.Speak
EOF

cat > /etc/sysconfig/desktop <<EOF
PREFERRED=/usr/bin/sugar
DISPLAYMANAGER=/usr/sbin/lightdm
EOF

# set up lightdm autologin
sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' 
/etc/lightdm/lightdm.conf
sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' 
/etc/lightdm/lightdm.conf

# Don't use the default system user (in SoaS liveuser) as nick name
# Disable the logout menu item in Sugar
# Enable Sugar power management
cat >/usr/share/glib-2.0/schemas/sugar.soas.gschema.override <<EOF
[org.sugarlabs.user]
default-nick='disabled'

[org.sugarlabs]
show-logout=false

[org.sugarlabs.power]
automatic=true
EOF
/usr/bin/glib-compile-schemas 
/usr/share/glib-2.0/schemas/sugar.soas.gschema.override

%end

%post

cat >> /etc/rc.d/init.d/livesys << EOF
# set up lightdm autologin
sed -i 's/^#autologin-user=.*/autologin-user=liveuser/' 
/etc/lightdm/lightdm.conf
sed -i 's/^#autologin-user-timeout=.*/autologin-user-timeout=0/' 
/etc/lightdm/lightdm.conf
#sed -i 's/^#show-language-selector=.*/show-language-selector=true/' 
/etc/lightdm/lightdm-gtk-greeter.conf

# set Sugar as default session, otherwise login will fail
sed -i 's/^#user-session=.*/user-session=sugar/' /etc/lightdm/lightdm.conf
EOF

cat >> /etc/rc.d/init.d/livesys-late << EOF

# disable screensaver locking
cat >> 
/usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override 
<< FOE
[org.gnome.desktop.screensaver]
lock-enabled=false
FOE

# and hide the lock screen option
cat >> 
/usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override 
<< FOE
[org.gnome.desktop.lockdown]
disable-lock-screen=true
FOE

# rebuild schema cache with any overrides we installed
glib-compile-schemas /usr/share/glib-2.0/schemas

EOF

chmod 755 /etc/rc.d/init.d/livesys-late
/sbin/restorecon /etc/rc.d/init.d/livesys-late
/sbin/chkconfig --add livesys-late

%end

%packages
@anaconda-tools
@base-x
@core
@guest-desktop-agents
@hardware-support
@input-methods
@networkmanager-submodules
@standard
@sugar-desktop
aajohan-comfortaa-fonts
alsa-plugins-pulseaudio
alsa-utils
anaconda
dejavu-sans-fonts
dejavu-sans-mono-fonts
dracut-live
glibc-all-langpacks
grub2-efi
gstreamer-plugins-espeak
gstreamer1-plugins-bad-free
gstreamer1-plugins-base
gstreamer1-plugins-good
kernel
kernel-modules
kernel-modules-extra
lightdm
lightdm-gtk
madan-fonts
memtest86+
pulseaudio
pulseaudio-utils
rp-pppoe
sil-abyssinica-fonts
sugar-cp-updater
sugar-logos
syslinux
vlgothic-fonts
webkitgtk3
- at dial-up
- at fonts
- at gnome-desktop
- at multimedia
- at printing
-PackageKit
-abrt-cli
-autofs
-coolkey
-eekboard-libs
-firefox
-foomatic
-gfs2-utils
-glx-utils
-hplip
-hyperv-daemons
-ibus*
-icedtea-web
-isdn4k-utils
-mpage
-nmap-ncat
-numactl
-open-vm-tools*
-openbox
-plymouth-system-theme
-plymouth-theme-charge
-rdate
-rdist
-sane-backends
-sane-backends-drivers-scanners
-sox
-sugar-ruler
-webkitgtk4-plugin-process-gtk2
-wget
-xsane
-xsane-gimp
-yp-tools
-ypbind

%end




More information about the Sugar-devel mailing list