File config.sh of Package deepin-live
#!/bin/bash
#================
# FILE : config.sh
#----------------
# PROJECT : openSUSE KIWI Image System
# COPYRIGHT : (c) 2006,2007,2008,2017 SUSE Linux GmbH. All rights reserved
# :
# AUTHOR : Marcus Schaefer <ms@suse.de>, Stephan Kulow <coolo@suse.de>, Fabian Vogt <fvogt@suse.com>
# :
# LICENSE : BSD
#======================================
# Functions...
#--------------------------------------
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
set -euox pipefail
exec | tee /var/log/config.log
exec 2>&1
#--------------------------------------
# Set a user environment variables
_USER=linux
_HOME=/home/linux
_GROUP=users
#--------------------------------------
# enable and disable services
for i in langset NetworkManager firewalld spice-vdagentd; do
systemctl -f enable $i
done
for i in sshd cron wicked purge-kernels; do
systemctl -f disable $i
done
cd /
# Import keys for installation
touch /installkey.gpg
gpg --batch --homedir /root/.gnupg --no-default-keyring --ignore-time-conflict --ignore-valid-from --keyring /installkey.gpg --import /usr/lib/rpm/gnupg/keys/*
mkdir -p /pubkeys
for i in /usr/lib/rpm/gnupg/keys/*.asc ; do
rpm --import $i || true
ln -s "$i" "/pubkeys/${i##*/}.key"
done
for i in /rpmkeys/*.key ; do
rpm --import $i || true
done
rm -rf /rpmkeys
#zypper in --no-recommends -d flash-player ffmpeg lame gstreamer-plugins-base \
#gstreamer-plugins-good gstreamer-plugins-good-extra gstreamer-plugins-bad \
#gstreamer-plugins-ugly gstreamer-plugins-libav \
#libdvdcss2
#cd /var/cache/zypp/
#tar cJvf ./packman-`date +%Y%m%d`-lp152.x86_64.tar.xz packages/
#zypper --no-remote --no-gpg-checks -n in $(find /packages/ -name '*.rpm' -not -name 'flash-player*')
#rm -rf /packages
#zypper --no-remote --no-gpg-checks -n in --force /xdg-utils-20170508-lp151.4.1.noarch.rpm
#rm -f /xdg-utils-20170508-lp151.4.1.noarch.rpm
# Craft license.tar.gz used by YaST
(cd /usr/share/licenses/product/base; tar -cvzf /license.tar.gz *)
# Remove netronome firmware (part of kernel-firmware): this sums up to 125MB
# Save 50 MiB by removing this, not very useful for lives
rm -rf /lib/firmware/{liquidio,netronome,qed,mrvl,mellanox,qcom}
# Remove some large locales to save space
#rm -rf /usr/share/locale/{ca,cs,da,de,es,fr,it,ja,nl,pl,pt_BR,sv,uk,vi,zh_CN}
find /usr/share/locale/* -maxdepth 0 -type d -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf
find /usr/share/help/* -maxdepth 0 -type d -not -name 'C' -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf
#find /usr/share/gnome/help/*/* -maxdepth 0 -type d -not -name 'C' -not -name 'ru' -not -name 'ru_RU' | xargs rm -rf
# Remove duplicate licenses
_target="";
fdupes -q -p -n -H -r /usr/share/licenses/ |
while read _file; do
if test -z "$_target" ; then
_target="$_file";
else
if test -z "$_file" ; then
_target="";
continue ;
fi ;
ln -f "$_target" "$_file";
fi ;
done
# Some packages really exaggerate here
rm -rf /usr/share/doc/ghostscript/*
rm -rf /usr/share/doc/packages/*
# Add repos from /etc/YaST2/control.xml
releasever="$(grep ^PRETTY_NAME /etc/os-release | cut -f2 -d\" | cut -f3 -d\ )"
# Repository named 'repo-backports-update' already exists
sed -i '131s/true/false/' /etc/YaST2/control.xml
# Repository named 'repo-sle-update' already exists
sed -i '143s/true/false/' /etc/YaST2/control.xml
eval $(xsltproc /geturls.xsl /etc/YaST2/control.xml)
rm /geturls.xsl
release="$(grep ^PRETTY_NAME /etc/os-release | cut -f2 -d\" | cut -f2,3 -d\ )"
zypper ar -f -n "Deepin-${release// /-}" http://download.opensuse.org/repositories/X11:/Deepin/openSUSE_${release// /_}/ deepin
zypper ar -f -n "Packman-${release// /-}" http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_${release// /_}/ packman
zypper ar -f -n "libdvdcss-${release// /-}" http://opensuse-guide.org/repo/openSUSE_${release// /_}/ libdvdcss
#======================================
# /etc/sudoers hack to fix #297695
# (Installation Live CD: no need to ask for password of root)
#--------------------------------------
sed -i -e "s/ALL\tALL=(ALL) ALL/ALL ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers
chmod 0440 /etc/sudoers
/usr/sbin/useradd -m -u 1000 $_USER -c "Live-CD User" -p ""
# mkpasswd -m sha-512 -S `pwgen -s1n 16`
# mkpasswd -m help
#/usr/sbin/useradd -m -u 1000 $_USER -c "Live-CD User" -p '$6$HnhRgXpb85os1xnv$/q9lyggzwlfNtm4rNPvTXBmMqxgisXLA1RaV.MBMoghv318itvttO7F2rg3A1P/Gs1g5pmhAFTGhke1Fp66v.0'
#/usr/sbin/usermod -p '$6$lN2kEqjPYu9JF0wW$E1rOwqyQR3D9kcOAMAv6QO6sLPsMbaH5fqnkEuZKPUNR.AQ/tsJMiUs0MDSdI.w5wHcl2s.iJPIDXpsG.t7W/.' root
# delete passwords
passwd -d root
passwd -d $_USER
# empty password is ok
pam-config -a --nullok
: > /var/log/zypper.log
# Add Installation icon to desktop folder
mkdir -p $_HOME/.config $_HOME/Desktop
echo 'XDG_DESKTOP_DIR="$HOME/Desktop"' > $_HOME/.config/user-dirs.dirs
#ln -s /usr/share/applications/installation.desktop $_HOME/Desktop/
#ln -s /usr/share/applications/upgrade.desktop $_HOME/Desktop/
chown -R $_USER:$_GROUP $_HOME
chkstat --system --set
ln -s /usr/lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER_AUTOLOGIN $_USER
baseUpdateSysConfig /etc/sysconfig/keyboard KEYTABLE us.map.gz
baseUpdateSysConfig /etc/sysconfig/keyboard YAST_KEYBOARD "english-us,pc104"
baseUpdateSysConfig /etc/sysconfig/keyboard COMPOSETABLE "clear latin1.add"
baseUpdateSysConfig /etc/sysconfig/language RC_LANG ""
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_FONT "eurlatgr.psfu"
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_SCREENMAP trivial
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_MAGIC "(K"
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_ENCODING "UTF-8"
_CURSOR="bloom-dark"
baseUpdateSysConfig /etc/sysconfig/windowmanager X_MOUSE_CURSOR $_CURSOR
echo -e "\nXCURSOR_THEME=$_CURSOR" >> /etc/environment
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER sddm
#update-alternatives --install /usr/lib/X11/displaymanagers/default-displaymanager default-displaymanager \
# /usr/lib/X11/displaymanagers/lightdm 30
baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM deepin
update-alternatives --install /usr/share/xsessions/default.desktop default-xsession.desktop \
/usr/share/xsessions/deepin.desktop 30
# Disable journal write to disk in live mode, bug 950999
echo "Storage=volatile" >> /etc/systemd/journald.conf
# Remove generated files (boo#1098535)
rm -rf /var/cache/zypp/* /var/lib/zypp/AnonymousUniqueId /var/lib/systemd/random-seed
#======================================>%
_ICON="bloom"
_THEME_GTK="deepin"
#_WALLPAPER="/usr/share/wallpapers/deepin/Flying_Whale_by_Shu_Le.jpg"
_WALLPAPER="/usr/share/wallpapers/deepin/luca-micheli-ruWkmt3nU58-unsplash.jpg"
_SDDM_WALLPAPER="$_WALLPAPER"
_SDDM_THEME="sugar-candy"
#"clairvoyance"
cp /usr/share/sddm/themes/$_SDDM_THEME/theme.conf /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
#sed -i "s|\(background=\).*|\1$_SDDM_WALLPAPER|" /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
sed -i "s|^\(Background=\).*|\1\"$_SDDM_WALLPAPER\"|" /usr/share/sddm/themes/$_SDDM_THEME/theme.conf.user
if [ -f /usr/lib/sddm/sddm.conf.d/00-general.conf ]; then
cat >> /usr/lib/sddm/sddm.conf.d/00-general.conf <<-EOF
[Theme]
Current=$_SDDM_THEME
CursorTheme=$_CURSOR
FacesDir=/var/lib/AccountsService/icons/
EOF
fi
cp /var/lib/AccountsService/icons/12.png /var/lib/AccountsService/icons/$_USER.face.icon
if rpmqpack deepin-account-faces; then
cp /var/lib/AccountsService/icons/12.png /var/lib/AccountsService/icons/default.png
cp /var/lib/AccountsService/icons/bigger/12.png /var/lib/AccountsService/icons/bigger/default.png
fi
sed -i "s/\(gtk-icon-theme-name = \).*/\1\"$_ICON\"/" /etc/gtk-2.0/gtkrc
sed -i "s/\(gtk-icon-theme-name = \).*/\1$_ICON/" /etc/gtk-3.0/settings.ini
sed -i "s/\(gtk-theme-name = \).*/\1\"$_THEME_GTK\"/" /etc/gtk-2.0/gtkrc
sed -i "s/\(gtk-theme-name = \).*/\1$_THEME_GTK/" /etc/gtk-3.0/settings.ini
mkdir -p $_HOME/Desktop
if [ -f "/usr/share/applications/firefox.desktop" ]; then
cp -f /usr/share/applications/firefox.desktop $_HOME/Desktop/
fi
if [ -f $_WALLPAPER ]; then
cat > /usr/share/glib-2.0/schemas/deepin-my-defaults.gschema.override <<-EOF
[com.deepin.dde.appearance]
background-uris = ['file://$_WALLPAPER']
[com.deepin.dde.appearance]
gtk-theme = '$_THEME_GTK'
cursor-theme = '$_CURSOR'
[com.deepin.xsettings]
theme-name = '$_THEME_GTK'
gtk-cursor-theme-name = '$_CURSOR'
EOF
glib-compile-schemas /usr/share/glib-2.0/schemas/
fi
if [ -f /etc/xdg/autostart/nm-applet.desktop ]; then
sed -i '/NotShowIn/s/$/Deepin\;/' /etc/xdg/autostart/nm-applet.desktop
fi
# Error: com.deepin.dde.watchdog.gschema.xml - dde-shutdown
if rpmqpack deepin-desktop-schemas; then
if grep dde-shutdown /usr/share/glib-2.0/schemas/com.deepin.dde.watchdog.gschema.xml; then
echo "dde-shutdown found"
else
_z1=' <key type="b" name="dde-shutdown">'
_z2=' <default>true</default>'
_z3=' <summary></summary>'
_z4=' <description></description>'
_z5=' </key>'
sed -i "/<\/schema>/s|^|$_z1\n$_z2\n$_z3\n$_z4\n$_z5\n|" \
/usr/share/glib-2.0/schemas/com.deepin.dde.watchdog.gschema.xml
glib-compile-schemas /usr/share/glib-2.0/schemas/
fi
fi
mv /usr/share/wallpapers/deepin/desktop.jpg /usr/share/wallpapers/deepin/.desktop.jpg
ln -sfn /etc/alternatives/desktop.jpg /usr/share/wallpapers/deepin/desktop.jpg
update-alternatives --install /usr/share/wallpapers/deepin/desktop.jpg desktop.jpg \
$_WALLPAPER 5
chown -R $_USER:$_GROUP $_HOME
chkstat --system --set
if [ -d "/etc/icewm/" ]; then
cat > /etc/icewm/theme <<- EOF
Theme="metal2/default.theme"
EOF
sed -i -e 's/\#\ ConfirmLogout=1/ConfirmLogout=0/' \
-e 's/\#\ MenuMouseTracking=0/MenuMouseTracking=1/' \
-e 's/\#\ PagerShowPreview=0/PagerShowPreview=1/' \
-e 's/\#\ TimeFormat=\"%X\"/TimeFormat=\"%R\"/' \
-e 's/\#\ TrayDrawBevel=0/TrayDrawBevel=1/' \
/etc/icewm/prefoverride
if grep 'KeyboardLayouts=' /etc/icewm/prefoverride ; then
sed -i 's/\#\ \(KeyboardLayouts=\).*$/\1\"en\", \"ru\"/' /etc/icewm/prefoverride
else
echo 'KeyboardLayouts="en", "ru"' >> /etc/icewm/prefoverride
fi
sed -i '/^#/!s/^/#/;/xterm/s/^#//;/separator/s/^#//' /etc/icewm/menu
sed -i '/SUSE/s/^#//' /etc/icewm/menu
#echo 'includeprog xdg_menu --format icewm' >> /etc/icewm/menu
#echo -e 'xdg_menu --format icewm &' >> /etc/icewm/startup
cp /etc/skel/.profile /root/
cp /etc/skel/.profile $_HOME/.profile
fi
mkdir -p /etc/zypp/vendors.d
cat > /etc/zypp/vendors.d/packman <<-EOF
[main]
vendors = openSUSE,http://packman.links2linux.de
EOF
#======================================>%