2de02b7a6c
This is important for older templates that got upgraded to new core packages, which renamed some of the tools by removing the '2' suffix.
104 lines
2.8 KiB
Bash
Executable File
104 lines
2.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# chkconfig: 345 90 90
|
|
# description: Executes Qubes core scripts at VM boot
|
|
#
|
|
# Source function library.
|
|
. /etc/rc.d/init.d/functions
|
|
|
|
start()
|
|
{
|
|
echo -n $"Executing Qubes Core scripts:"
|
|
|
|
if ! [ -x /usr/bin/xenstore-read ] ; then
|
|
echo "ERROR: /usr/bin/xenstore-read not found!"
|
|
exit 1
|
|
fi
|
|
|
|
# Set permissions to /proc/xen/xenbus, so normal user can use xenstore-read
|
|
chmod 666 /proc/xen/xenbus
|
|
|
|
name=$(/usr/bin/xenstore-read name)
|
|
if ! [ -f /etc/this_is_dvm ] ; then
|
|
# we don't want to set hostname for DispVM
|
|
# because it makes some of the pre-created dotfiles invalid (e.g. .kde/cache-<hostname>)
|
|
# (let's be frank: nobody's gonna use xterm on DispVM)
|
|
hostname $name
|
|
fi
|
|
|
|
# Set IP address again (besides action in udev rules); this is needed by
|
|
# DispVM (to override DispVM-template IP) and in case when qubes_ip was
|
|
# called by udev before loading evtchn kernel module - in which case
|
|
# xenstore-read fails
|
|
INTERFACE=eth0 /usr/lib/qubes/setup_ip
|
|
|
|
if [ -e /dev/xvdb ] ; then
|
|
mount /rw
|
|
|
|
if ! [ -d /rw/home ] ; then
|
|
echo
|
|
echo "--> Virgin boot of the VM: Linking /home to /rw/home"
|
|
|
|
mkdir -p /rw/config
|
|
touch /rw/config/rc.local
|
|
|
|
mkdir -p /rw/home
|
|
cp -a /home.orig/user /home
|
|
|
|
mkdir -p /rw/usrlocal
|
|
cp -a /usr/local.orig/* /usr/local
|
|
|
|
touch /var/lib/qubes/first_boot_completed
|
|
fi
|
|
fi
|
|
|
|
/usr/lib/qubes/qrexec_agent 2>/var/log/qubes/qrexec_agent.log &
|
|
|
|
[ -x /rw/config/rc.local ] && /rw/config/rc.local
|
|
|
|
if ! [ -f /home/user/.gnome2/nautilus-scripts/.scripts_created ] ; then
|
|
echo "Creating symlinks for nautilus actions..."
|
|
su user -c 'mkdir -p /home/user/.gnome2/nautilus-scripts'
|
|
su user -c 'ln -s /usr/lib/qubes/qvm-copy-to-vm.gnome /home/user/.gnome2/nautilus-scripts/"Copy to other AppVM"'
|
|
su user -c 'ln -s /usr/bin/qvm-open-in-dvm /home/user/.gnome2/nautilus-scripts/"Open in DisposableVM"'
|
|
su user -c 'touch /home/user/.gnome2/nautilus-scripts/.scripts_created'
|
|
fi
|
|
|
|
if ! [ -f /home/user/.gnome2/nautilus-scripts/.scripts_created2 ] ; then
|
|
# as we have recently renamed tools, the symlinks would need to be fixed for older templates
|
|
su user -c 'ln -sf /usr/lib/qubes/qvm-copy-to-vm.gnome /home/user/.gnome2/nautilus-scripts/"Copy to other AppVM"'
|
|
su user -c 'ln -sf /usr/bin/qvm-open-in-dvm /home/user/.gnome2/nautilus-scripts/"Open in DisposableVM"'
|
|
su user -c 'touch /home/user/.gnome2/nautilus-scripts/.scripts_created2'
|
|
fi
|
|
|
|
|
|
success
|
|
echo ""
|
|
|
|
type=$(/usr/bin/xenstore-read qubes_vm_type)
|
|
if [ "$type" == "ProxyVM" ]; then
|
|
/sbin/service ntpd start
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
stop()
|
|
{
|
|
return 0
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop}"
|
|
exit 3
|
|
;;
|
|
esac
|
|
|
|
exit $RETVAL
|