From f48ba1475938756b1ddba7538222c14bc8c7a02a Mon Sep 17 00:00:00 2001 From: Volker Uhrig Date: Thu, 31 May 2007 15:27:44 +0000 Subject: sync with runvmware-v2 git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1122 95ad53e4-c205-0410-b2fa-d234c58c8868 --- initramfs/initrd-stuff/bin/servconfig | 114 ++++++++++++++-------------------- 1 file changed, 46 insertions(+), 68 deletions(-) diff --git a/initramfs/initrd-stuff/bin/servconfig b/initramfs/initrd-stuff/bin/servconfig index d6871975..028937c8 100755 --- a/initramfs/initrd-stuff/bin/servconfig +++ b/initramfs/initrd-stuff/bin/servconfig @@ -104,6 +104,12 @@ echo -e "\t# entries added by $0: $date" >> /mnt/etc/${D_INITDIR}/boot.slx # * VM images in /usr/share/vmware - then simply link # * VM images via additional mount (mount source NFS, NBD, ...) if [ "x$vmware" != "x" ] && [ "x$vmware" != "xno" ] ; then + # map slxgrp to pool, so it's better to understand + pool=${slxgrp} + # if we dont have slxgrp defined + if [ -z ${pool} ];then + pool=default + fi # get source of vmware image server (get type, server and path) if [ -n "${imgsrv}" ] ; then vmimgprot=$(uri_token $imgsrv prot) @@ -362,76 +368,48 @@ if [ "x$vmware" != "x" ] && [ "x$vmware" != "xno" ] ; then config_vmware chmod 1777 /mnt/var/run/vmware # define a variable where gdm/kdm should look for additional sessions - export vmsessions=/var/lib/vmware/vmsessions + #do we really need it? + #export vmsessions=/var/lib/vmware/vmsessions # create default.desktop for kdm - echo -e "[Desktop Entry]\nEncoding=UTF-8\nName=Default\n\ -Name[de]=Standard\nExec=/var/X11R6/bin/xdmmenu\nTryExec=/var/X11R6/bin/xdmmenu\n\ -Type=Application" >/mnt/etc/X11/sessions/default.desktop + echo "[Desktop Entry]" > /mnt/etc/X11/sessions/default.desktop + echo "Encoding=UTF8" >> /mnt/etc/X11/sessions/default.desktop + echo "Name=Default" >> /mnt/etc/X11/sessions/default.desktop + echo "Name[de]=Standard" >> /mnt/etc/X11/sessions/default.desktop + #I dont like this part, but there is no simple workaround. We need to + #create xdialog.sh on every box :( + #echo "Exec=/var/lib/vmware/xdialog-files/${pool}/xdialog.sh" \ + echo "Exec=/etc/X11/xdialog.sh" \ + >> /mnt/etc/X11/sessions/default.desktop + echo "Type=Application" >> /mnt/etc/X11/sessions/default.desktop + # we configured vmware, so we can delete the not_configured file rm /mnt/etc/vmware/not_configured 2>/dev/null - echo -e "#!/bin/sh\n#\n# file generated by ${0} at ${date}\ - \n\nvmstart=\$(echo \$0 | awk -F \"/\" '{print \$NF}')\ - \n\nif [ \"\${vmstart}\" = \"xdmmenu\" ]; then\ - \n /var/X11R6/bin/runvmware --xdm all\ - \n exit 0\ - \nelif [ \"\${vmstart}\" = \"vmmenu\" ]; then\ - \n /var/X11R6/bin/runvmware --xdm vm\ - \n exit 0\ - \nelse\ - \n /var/X11R6/bin/runvmware -s \${vmstart}\ - \nfi\n"\ - > /mnt/var/X11R6/bin/desktop-session - chmod 755 /mnt/var/X11R6/bin/runvmware /mnt/var/X11R6/bin/desktop-session \ - >/dev/null 2>&1 - # add script for default.desktop - cd /mnt/var/X11R6/bin - ln -s desktop-session xdmmenu - sessions=$(ls /mnt/var/lib/vmware/vmsessions/*.desktop 2>/dev/null) - # fixme: the following part is to be tested!! - if [ -n "${sessions}" ]; then - vmsessionsnr=0 - xdmsessionsnr=0 - for i in /mnt/var/lib/vmware/vmsessions/*.desktop; do - # only link if in right slxgrp - slxgrpstr=$(sed \ - 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;/slxgrp=/!d' ${i} \ - | sed '$!d;s/slxgrp=//') - slxgrptest="false" - # FIXME: maybe logfile sometime ;) - #echo "=${slxgrpstr}=" - if strinstr " ${slxgrp} " " ${slxgrpstr} "; then slxgrptest="true"; fi - xdmshow=$(sed \ - 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;/xdm=/!d' ${i} \ - | sed -e '$!d;s/xdm=//') - if [ -z "${slxgrp}" -o "${slxgrptest}" = "true" ]; then - #session_name=$(cat ${i} | grep -iw "exec" \ - # | awk -F "=" '{print $2}') - session_name=$(sed \ - 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;/^exec=/!d' ${i} \ - | sed '$!d;s,exec.*[/=],,') - # create session links so that they con be startet via xdm - cd /mnt/var/X11R6/bin - ln -s desktop-session ${session_name} - cd /mnt/etc/X11/sessions/runvmware - ln -s ${i#/mnt} ${i#/mnt/var/lib/vmware/vmsessions/} - vmsessionsnr=$(expr `echo ${vmsessionsnr}` + 1) - # only show in xdm if xdmshow=true - if [ "${xdmshow}" = "true" ]; then - cd /mnt/etc/X11/sessions - sed -e "s,^[E|e][X|x][E|e][C|c]=[^/].*,Exec=/var/X11R6/bin/${session_name}," $i \ - > ${i#/mnt/var/lib/vmware/vmsessions/} - xdmsessionsnr=$(expr `echo ${xdmsessionsnr}` + 1) - fi - fi - done - # add script vmimages.desktop only if more windowsimages than shown in xdm - if [ "${vmsessionsnr}" -gt "${xdmsessionsnr}" ]; then - echo -e "[Desktop Entry]\nEncoding=UTF-8\nName=Virtual Windows XP Menu\n\ -Name[de]=Virtual Windows XP MenĂ¼\nExec=/var/X11R6/bin/vmmenu\nTryExec=/var/X11R6/bin/vmmenu\n\ -pplication" >/mnt/etc/X11/sessions/vmmenu.desktop - cd /mnt/var/X11R6/bin - ln -s desktop-session vmmenu - fi - fi + + # copy dhcpd.conf and nat for vmnet8 (nat) + cp /mnt/var/lib/vmware/templates/dhcpd.conf /mnt/etc/vmware/vmnet8/dhcpd/ + cp /mnt/var/lib/vmware/templates/nat.conf /mnt/etc/vmware/vmnet8/nat/ + + #directory of templates and xidlaog-files + vmdir=/mnt/var/lib/vmware + cp ${vmdir}/templates/xdialog.sh /mnt/etc/X11/ + + # /usr/share/xsessions/* files for the menu + for i in /mnt/usr/share/xsessions/*.desktop; do + # execute + echo "\"$(grep '^Exec=' ${i}|sed 's/^Exec=//')\" \\" \ + >> /mnt/etc/X11/xdialog.sh + # short description + echo "\"$(grep '^Name=' ${i}|sed 's/^Name=//')\" \\" \ + >> /mnt/etc/X11/xdialog.sh + #long description + echo "\"$(grep '^Comment=' ${i}|sed 's/^Comment=//')\" \\" \ + >> /mnt/etc/X11/xdialog.sh + done + + #all vmware clients + cat ${vmdir}/xdialog-files/${pool}/*.xdialog >> /mnt/etc/X11/xdialog.sh + #closing bracket as last line ends with '\' + echo ")" >> /mnt/etc/X11/xdialog.sh + chmod 755 /mnt/etc/X11/xdialog.sh fi # theming -- cgit v1.2.3-55-g7522