diff --git a/app-misc/sabayonlive-tools/Manifest b/app-misc/sabayonlive-tools/Manifest index ff9ff61cf..1f246db96 100644 --- a/app-misc/sabayonlive-tools/Manifest +++ b/app-misc/sabayonlive-tools/Manifest @@ -110,14 +110,38 @@ AUX 1.7.1/xorg.conf 3890 RMD160 49e687482f1ad18867e98313f3d01f623cb52b7a SHA1 fb MD5 61b94f669561bfd615f51f54c1c9d07e files/1.7.1/xorg.conf 3890 RMD160 49e687482f1ad18867e98313f3d01f623cb52b7a files/1.7.1/xorg.conf 3890 SHA256 cbf20892e2b2c07e2b2a748fee99df871436f1093a3d38ab028f16d0581dff6c files/1.7.1/xorg.conf 3890 -EBUILD sabayonlive-tools-1.6.1.ebuild 1137 RMD160 403e0967a89e909a55cfbe546f7b814424f292a5 SHA1 27d5f22e3c2f9f0daaf723b79cbecef28a58e818 SHA256 bed8619f039c4c96bab645c1f3e30b5f0cc338bfa92973b6ea68c47f7b9a0d27 -MD5 a46a94cca07c6885298731f6d533c018 sabayonlive-tools-1.6.1.ebuild 1137 -RMD160 403e0967a89e909a55cfbe546f7b814424f292a5 sabayonlive-tools-1.6.1.ebuild 1137 -SHA256 bed8619f039c4c96bab645c1f3e30b5f0cc338bfa92973b6ea68c47f7b9a0d27 sabayonlive-tools-1.6.1.ebuild 1137 -EBUILD sabayonlive-tools-1.6.2.ebuild 1140 RMD160 a90b9427bfdc3715c546947c20c4626d1877cc3a SHA1 5d7defab74141ba36dd241f12d2bb8fd50ad117a SHA256 5ebef0a8340681502c08c7af7407985b60964a44db41e60d929810b5cc6213bd -MD5 014ee4ab07ed8c239b36b234789e3d42 sabayonlive-tools-1.6.2.ebuild 1140 -RMD160 a90b9427bfdc3715c546947c20c4626d1877cc3a sabayonlive-tools-1.6.2.ebuild 1140 -SHA256 5ebef0a8340681502c08c7af7407985b60964a44db41e60d929810b5cc6213bd sabayonlive-tools-1.6.2.ebuild 1140 +AUX 1.7.2/bashlogin 133 RMD160 5c2aae2522427c3ff1d9260764b0ed20cd1a0909 SHA1 a57b9911d970d57d43b9d697af136e47137177f6 SHA256 7dbf15b68e436cd014b64779435afd4cfccd012e4889a86f955ef42a89278aad +MD5 9bdc85070df0e7b1aed3d02c5e2777c6 files/1.7.2/bashlogin 133 +RMD160 5c2aae2522427c3ff1d9260764b0ed20cd1a0909 files/1.7.2/bashlogin 133 +SHA256 7dbf15b68e436cd014b64779435afd4cfccd012e4889a86f955ef42a89278aad files/1.7.2/bashlogin 133 +AUX 1.7.2/livecd-functions.sh 17609 RMD160 d8c04a34fd18f5b5abebcd2f76f7fc93fee2e53c SHA1 1af8738cabfb08e6414b5c064481a893e7f14b07 SHA256 fff774d8ad984d35026c872e56c8b76f6db4a16a369659f519cc94312d1c00bc +MD5 4ff2d5cd493def90aef53576aae47036 files/1.7.2/livecd-functions.sh 17609 +RMD160 d8c04a34fd18f5b5abebcd2f76f7fc93fee2e53c files/1.7.2/livecd-functions.sh 17609 +SHA256 fff774d8ad984d35026c872e56c8b76f6db4a16a369659f519cc94312d1c00bc files/1.7.2/livecd-functions.sh 17609 +AUX 1.7.2/net-setup 1525 RMD160 bc9ecc263f7547a16efa7acc279d186fc56925d7 SHA1 718a7f8f5a5912e32a41701c6a90caf94bbe3027 SHA256 2356972db6ed044e74c4fc91cc7ef19f678aac3cf149f48fcde88922d7531468 +MD5 60df251e1ea9ee478ed3bd7dd85c6404 files/1.7.2/net-setup 1525 +RMD160 bc9ecc263f7547a16efa7acc279d186fc56925d7 files/1.7.2/net-setup 1525 +SHA256 2356972db6ed044e74c4fc91cc7ef19f678aac3cf149f48fcde88922d7531468 files/1.7.2/net-setup 1525 +AUX 1.7.2/opengl-activator 9886 RMD160 757e7689224332cffb96a16dc902d96f88612c16 SHA1 c4a3190f62f3d81546f27b4e81bf8bb73842c1d3 SHA256 61c2c230f4ab9092cbd222f090c288029e3215029b26a81b9bd04397650828c7 +MD5 4c8f7c303fd0c5c1a48b9e3fb18b3326 files/1.7.2/opengl-activator 9886 +RMD160 757e7689224332cffb96a16dc902d96f88612c16 files/1.7.2/opengl-activator 9886 +SHA256 61c2c230f4ab9092cbd222f090c288029e3215029b26a81b9bd04397650828c7 files/1.7.2/opengl-activator 9886 +AUX 1.7.2/sabayonlive 33878 RMD160 df3b77e123ee3e91df9e19ebf8bd79e702f7fe8a SHA1 a87340b6fd56b5980729c9d4ed99fb57af86172c SHA256 3e923f6c24ea3f01a5dedb0f136892a020d59cbdea227469a4d306bf5daceac4 +MD5 7cabd38ed90beea2ec65016b27dbe01f files/1.7.2/sabayonlive 33878 +RMD160 df3b77e123ee3e91df9e19ebf8bd79e702f7fe8a files/1.7.2/sabayonlive 33878 +SHA256 3e923f6c24ea3f01a5dedb0f136892a020d59cbdea227469a4d306bf5daceac4 files/1.7.2/sabayonlive 33878 +AUX 1.7.2/x-setup-configuration 11844 RMD160 0a380d242461fe405481d03ed72b747e031a6167 SHA1 c6be9b847d3f630f43dac830a2eff9a8a7a7e223 SHA256 94db8b84b1d26a99dba22114ade10a9a787f2173685bba57846e5fd4f4b49bee +MD5 0a3b268df5862a3c59ab5ff98d50c4d0 files/1.7.2/x-setup-configuration 11844 +RMD160 0a380d242461fe405481d03ed72b747e031a6167 files/1.7.2/x-setup-configuration 11844 +SHA256 94db8b84b1d26a99dba22114ade10a9a787f2173685bba57846e5fd4f4b49bee files/1.7.2/x-setup-configuration 11844 +AUX 1.7.2/x-setup-init.d 1330 RMD160 09c155ffe3aa9a65760bdef8cece2737ccc9c6c3 SHA1 11982feb8b32cd30ac972767f0c8094220e5c1c6 SHA256 bfbbdafc69b24274791bd412d223f8bc2c443cf942cfd3b989bc23916f9833ad +MD5 20c133ce4880abc538c7989920f3534c files/1.7.2/x-setup-init.d 1330 +RMD160 09c155ffe3aa9a65760bdef8cece2737ccc9c6c3 files/1.7.2/x-setup-init.d 1330 +SHA256 bfbbdafc69b24274791bd412d223f8bc2c443cf942cfd3b989bc23916f9833ad files/1.7.2/x-setup-init.d 1330 +AUX 1.7.2/xorg.conf 3890 RMD160 49e687482f1ad18867e98313f3d01f623cb52b7a SHA1 fbcd39fe95d98f55892fbe46db49cac203c83e76 SHA256 cbf20892e2b2c07e2b2a748fee99df871436f1093a3d38ab028f16d0581dff6c +MD5 61b94f669561bfd615f51f54c1c9d07e files/1.7.2/xorg.conf 3890 +RMD160 49e687482f1ad18867e98313f3d01f623cb52b7a files/1.7.2/xorg.conf 3890 +SHA256 cbf20892e2b2c07e2b2a748fee99df871436f1093a3d38ab028f16d0581dff6c files/1.7.2/xorg.conf 3890 EBUILD sabayonlive-tools-1.7.0.ebuild 1140 RMD160 a90b9427bfdc3715c546947c20c4626d1877cc3a SHA1 5d7defab74141ba36dd241f12d2bb8fd50ad117a SHA256 5ebef0a8340681502c08c7af7407985b60964a44db41e60d929810b5cc6213bd MD5 014ee4ab07ed8c239b36b234789e3d42 sabayonlive-tools-1.7.0.ebuild 1140 RMD160 a90b9427bfdc3715c546947c20c4626d1877cc3a sabayonlive-tools-1.7.0.ebuild 1140 @@ -126,15 +150,16 @@ EBUILD sabayonlive-tools-1.7.1-r1.ebuild 1140 RMD160 a90b9427bfdc3715c546947c20c MD5 014ee4ab07ed8c239b36b234789e3d42 sabayonlive-tools-1.7.1-r1.ebuild 1140 RMD160 a90b9427bfdc3715c546947c20c4626d1877cc3a sabayonlive-tools-1.7.1-r1.ebuild 1140 SHA256 5ebef0a8340681502c08c7af7407985b60964a44db41e60d929810b5cc6213bd sabayonlive-tools-1.7.1-r1.ebuild 1140 -MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-sabayonlive-tools-1.6.1 0 -RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-sabayonlive-tools-1.6.1 0 -SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-sabayonlive-tools-1.6.1 0 -MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-sabayonlive-tools-1.6.2 0 -RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-sabayonlive-tools-1.6.2 0 -SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-sabayonlive-tools-1.6.2 0 +EBUILD sabayonlive-tools-1.7.2.ebuild 1202 RMD160 76f426092d3d7c08d2452b69d24bb3282c053686 SHA1 1ef730f9ce62305c82f82db27a0eeb5d2f61b483 SHA256 5a85a35bdea8de5ec76a0a01798ba0167649d0f401c69470e389b9d621aeb941 +MD5 b7f0a00346bd02bc5e5db7cb58aeda36 sabayonlive-tools-1.7.2.ebuild 1202 +RMD160 76f426092d3d7c08d2452b69d24bb3282c053686 sabayonlive-tools-1.7.2.ebuild 1202 +SHA256 5a85a35bdea8de5ec76a0a01798ba0167649d0f401c69470e389b9d621aeb941 sabayonlive-tools-1.7.2.ebuild 1202 MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-sabayonlive-tools-1.7.0 0 RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-sabayonlive-tools-1.7.0 0 SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-sabayonlive-tools-1.7.0 0 MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-sabayonlive-tools-1.7.1-r1 0 RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-sabayonlive-tools-1.7.1-r1 0 SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-sabayonlive-tools-1.7.1-r1 0 +MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-sabayonlive-tools-1.7.2 0 +RMD160 9c1185a5c5e9fc54612808977ee8f548b2258d31 files/digest-sabayonlive-tools-1.7.2 0 +SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 files/digest-sabayonlive-tools-1.7.2 0 diff --git a/app-misc/sabayonlive-tools/files/1.7.2/bashlogin b/app-misc/sabayonlive-tools/files/1.7.2/bashlogin new file mode 100755 index 000000000..60d73c203 --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/bashlogin @@ -0,0 +1,7 @@ +#!/bin/bash + +cat /etc/motd 2>/dev/null +cd /root +[[ -e .bash_profile ]] && source .bash_profile +kbdrate -s -r 25 +exec -l /bin/bash -i diff --git a/app-misc/sabayonlive-tools/files/1.7.2/livecd-functions.sh b/app-misc/sabayonlive-tools/files/1.7.2/livecd-functions.sh new file mode 100755 index 000000000..3a6c55e90 --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/livecd-functions.sh @@ -0,0 +1,638 @@ +#!/bin/bash + +# Global Variables: +# CDBOOT -- is booting off CD +# LIVECD_CONSOLE -- console that is specified to kernel commandline +# -- (ttyS0, tty1, etc). Only defined if passed to kernel +# LIVECD_CONSOLE_BAUD -- console baudrate specified +# LIVECD_CONSOLE_PARITY -- console parity specified +# LIVECD_CONSOLE_DATABITS -- console databits specified + +[[ ${RC_GOT_FUNCTIONS} != "yes" ]] && source /sbin/functions.sh + +livecd_parse_opt() { + case "$1" in + *\=*) + echo "$1" | cut -f2 -d= + ;; + esac +} + +livecd_check_root() { + if [ "$(whoami)" != "root" ] + then + echo "ERROR: must be root to continue" + return 1 + fi +} + +livecd_get_cmdline() { + echo "0" > /proc/sys/kernel/printk + CMDLINE="$(cat /proc/cmdline)" + export CMDLINE +} + +no_gl() { +# einfo "If you have a card that you know is supported by either the ATI or" +# einfo "NVIDIA binary drivers, please file a bug with the output of lspci" +# einfo "on http://bugs.gentoo.org so we can resolve this." + GLTYPE=xorg-x11 +} + +ati_gl() { + einfo "ATI card detected." + if [ -e /usr/lib/xorg/modules/drivers/fglrx_drv.so ] \ + || [ -e /usr/lib/modules/drivers/fglrx_drv.so ] + then + GLTYPE=ati + else + GLTYPE=xorg-x11 + fi +} + +nv_gl() { + einfo "NVIDIA card detected." + if [ -e /usr/lib/xorg/modules/drivers/nvidia_drv.so ] \ + || [ -e /usr/lib/modules/drivers/nvidia_drv.so ] + then + GLTYPE=nvidia + else + GLTYPE=xorg-x11 + fi +} + +nv_no_gl() { + einfo "NVIDIA card detected." + echo + if [ -e /usr/lib/xorg/modules/drivers/nvidia_drv.so ] \ + || [ -e /usr/lib/modules/drivers/nvidia_drv.so ] + then + einfo "This card is not supported by the latest version of the NVIDIA" + einfo "binary drivers. Switching to the X server's driver instead." + fi + GLTYPE=xorg-x11 + sed -i 's/nvidia/nv/' /etc/X11/xorg.conf +} + +get_video_cards() { + [ -x /sbin/lspci ] && VIDEO_CARDS="$(/sbin/lspci | grep ' VGA ')" + [ -x /usr/sbin/lspci ] && VIDEO_CARDS="$(/usr/sbin/lspci | grep ' VGA ')" + #NUM_CARDS="$(echo ${VIDEO_CARDS} | wc -l)" + #if [ ${NUM_CARDS} -eq 1 ] # Disabled to support NVIDIA SLI devices + #then + NVIDIA=$(echo ${VIDEO_CARDS} | grep -i "nVidia Corporation") + ATI=$(echo ${VIDEO_CARDS} | grep -i "ATI Technologies") + if [ -n "${NVIDIA}" ] + then + # Always set NVIDIA OpenGL, since it's stupid doing the contrary because: + # there's no X.Org free driver that supports OpenGL through MESA + nv_gl + #NVIDIA_CARD=$(echo ${NVIDIA} | awk 'BEGIN {RS=" "} /(NV|nv|G|C)[0-9]+/ {print $1}' | cut -d. -f1 | sed 's/ //' | sed 's:[^0-9]::g') + # NVIDIA Model reference: + # http://en.wikipedia.org/wiki/Comparison_of_NVIDIA_Graphics_Processing_Units + #if [ -n "${NVIDIA_CARD}" ] + #then + # if [ $(echo ${NVIDIA_CARD} | cut -dV -f2) -ge 17 ] + # then + # nv_gl + # elif [ $(echo ${NVIDIA_CARD} | cut -dG -f2) -ge 70 ] + # then + # nv_gl + # elif [ $(echo ${NVIDIA_CARD} | cut -dV -f2) -eq 11 ] + # then + # nv_gl + # elif [ $(echo ${NVIDIA_CARD} | cut -dC -f2) -ge 50 ] + # then + # nv_gl + # else + # no_gl + # fi + #else + # no_gl + #fi + elif [ -n "${ATI}" ] + then + ATI_CARD=$(echo ${ATI} | awk 'BEGIN {RS=" "} /(R|RV|RS|M)[0-9]+/ {print $1}') + if [ $(echo ${ATI_CARD} | grep S) ] + then + ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dS -f2) + elif [ $(echo ${ATI_CARD} | grep V) ] + then + ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dV -f2) + elif [ $(echo ${ATI_CARD} | grep M) ] + then + # ATI Technologies Inc. M52 [ ATI Mobility Radeon X1300 ] + ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dM -f2) + else + ATI_CARD_OUT=$(echo ${ATI_CARD} | cut -dR -f2) + fi + + if [ -n "${ATI_CARD_OUT}" ] && [ ${ATI_CARD_OUT} -ge 300 ] + then + ati_gl + elif [ -n "${ATI_CARD_OUT}" ] && [ -n "`echo ${ATI_CARD} | grep M`" ] + then + # this is an ATI Mxx card + ati_gl + # >8.29.6 does not support R200 anymore + elif [ -n "${ATI_CARD_OUT}" ] && [ ${ATI_CARD_OUT} -ge 200 ] + then + no_gl + else + # set ATI OpenGL anyway + ati_gl + fi + else + no_gl + fi + #fi +} + +livecd_config_wireless() { + cd /tmp/setup.opts + [ -x /usr/sbin/iwconfig ] && iwconfig=/usr/sbin/iwconfig + [ -x /sbin/iwconfig ] && iwconfig=/sbin/iwconfig + dialog --title "SSID" --inputbox "Please enter your SSID, or leave blank for selecting the nearest open network" 20 50 2> ${iface}.SSID + SSID="$(cat ${iface}.SSID)" + if [ -n "${SSID}" ] + then + dialog --title "WEP (Part 1)" --menu "Does your network use encryption?" 20 60 7 1 "Yes" 2 "No" 2> ${iface}.WEP + WEP="$(cat ${iface}.WEP)" + case ${WEP} in + 1) + dialog --title "WEP (Part 2)" --menu "Are you entering your WEP key in HEX or ASCII?" 20 60 7 1 "HEX" 2 "ASCII" 2> ${iface}.WEPTYPE + WEP_TYPE="$(cat ${iface}.WEPTYPE)" + case ${WEP_TYPE} in + 1) + dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in the form of XXXX-XXXX-XX for 64-bit or XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX for 128-bit" 20 50 2> ${iface}.WEPKEY + WEP_KEY="$(cat ${iface}.WEPKEY)" + if [ -n "${WEP_KEY}" ] + then + ${iwconfig} ${iface} essid "${SSID}" + ${iwconfig} ${iface} key "${WEP_KEY}" + fi + ;; + 2) + dialog --title "WEP (Part 3)" --inputbox "Please enter your WEP key in ASCII form. This should be 5 or 13 characters for either 64-bit or 128-bit encryption, repectively" 20 50 2> ${iface}.WEPKEY + WEP_KEY="$(cat ${iface}.WEPKEY)" + if [ -n "${WEP_KEY}" ] + then + ${iwconfig} ${iface} essid "${SSID}" + ${iwconfig} ${iface} key "s:${WEP_KEY}" + fi + ;; + esac + ;; + 2) + ${iwconfig} ${iface} essid "${SSID}" + ${iwconfig} ${iface} key off + ;; + esac + fi +} + +livecd_write_wireless_conf() { + cd /tmp/setup.opts + SSID="$(cat ${iface}.SSID)" + if [ -n "${SSID}" ] + then + echo "# This wireless configuration file was built by net-setup" > /etc/conf.d/wireless + WEP="$(cat ${iface}.WEPTYPE)" + case ${WEP} in + 1) + WEP_TYPE="$(cat ${iface}.WEPTYPE)" + if [ -n "${WEP_TYPE}" ] + then + WEP_KEY="$(cat ${iface}.WEPKEY)" + if [ -n "${WEP_KEY}" ] + then + SSID_TRANS="$(echo ${SSID//[![:word:]]/_})" + case ${WEP_TYPE} in + 1) + echo "key_${SSID_TRANS}=\"${WEP_KEY} enc open\"" >> /etc/conf.d/wireless + ;; + 2) + echo "key_${SSID_TRANS}=\"s:${WEP_KEY} enc open\"" >> /etc/conf.d/wireless + ;; + esac + fi + fi + ;; + 2) + : + ;; + esac + echo "preferred_aps=( \"${SSID}\" )" >> /etc/conf.d/wireless + echo "associate_order=\"forcepreferredonly\"" >> /etc/conf.d/wireless + fi +} + +livecd_config_ip() { + cd /tmp/setup.opts + dialog --title "TCP/IP setup" --menu "You can use DHCP to automatically configure a network interface or you can specify an IP and related settings manually. Choose one option:" 20 60 7 1 "Use DHCP to auto-detect my network settings" 2 "Specify an IP address manually" 2> ${iface}.DHCP + DHCP="$(cat ${iface}.DHCP)" + case ${DHCP} in + 1) + /sbin/dhclient -q -r -nw ${iface} & + ;; + 2) + dialog --title "IP address" --inputbox "Please enter an IP address for ${iface}:" 20 50 "192.168.1.1" 2> ${iface}.IP + IP="$(cat ${iface}.IP)" + BC_TEMP="$(echo $IP|cut -d . -f 1).$(echo $IP|cut -d . -f 2).$(echo $IP|cut -d . -f 3).255" + dialog --title "Broadcast address" --inputbox "Please enter a Broadcast address for ${iface}:" 20 50 "${BC_TEMP}" 2> ${iface}.BC + BROADCAST="$(cat ${iface}.BC)" + dialog --title "Network mask" --inputbox "Please enter a Network Mask for ${iface}:" 20 50 "255.255.255.0" 2> ${iface}.NM + NETMASK="$(cat ${iface}.NM)" + dialog --title "Gateway" --inputbox "Please enter a Gateway for ${iface} (hit enter for none:)" 20 50 2> ${iface}.GW + GATEWAY="$(cat ${iface}.GW)" + dialog --title "DNS server" --inputbox "Please enter a name server to use (hit enter for none:)" 20 50 2> ${iface}.DNS + DNS="$(cat ${iface}.DNS)" + /sbin/ifconfig ${iface} ${IP} broadcast ${BROADCAST} netmask ${NETMASK} + if [ -n "${GATEWAY}" ] + then + /sbin/route add default gw ${GATEWAY} dev ${iface} netmask 0.0.0.0 metric 1 + fi + if [ -n "${DNS}" ] + then + dialog --title "DNS Search Suffix" --inputbox "Please enter any domains which you would like to search on DNS queries (hit enter for none:)" 20 50 2> ${iface}.SUFFIX + SUFFIX="$(cat ${iface}.SUFFIX)" + echo "nameserver ${DNS}" > /etc/resolv.conf + if [ -n "${SUFFIX}" ] + then + echo "search ${SUFFIX}" >> /etc/resolv.conf + fi + fi + ;; + esac +} + +livecd_write_net_conf() { + cd /tmp/setup.opts + echo "# Sabayon Linux static network configuration tool" > /etc/conf.d/net + DHCP="$(cat ${iface}.DHCP)" + case ${DHCP} in + 1) + echo "config_${iface}=( \"dhcp\" )" >> /etc/conf.d/net + echo "dhcp_${iface}=\"nosendhost\"" >> /etc/conf.d/net + ;; + 2) + IP="$(cat ${iface}.IP)" + BROADCAST="$(cat ${iface}.BC)" + NETMASK="$(cat ${iface}.NM)" + GATEWAY="$(cat ${iface}.GW)" + DNS="$(cat ${iface}.DNS)" + DOMAIN="$(cat ${iface}.SUFFIX)" + if [ -n "${IP}" -a -n "${BROADCAST}" -a -n "${NETMASK}" ] + then + echo "config_${iface}=( \"${IP} broadcast ${BROADCAST} netmask ${NETMASK}\" )" >> /etc/conf.d/net + if [ -n "${GATEWAY}" ] + then + echo "routes_${iface}=( \"default via ${GATEWAY}\" )" >> /etc/conf.d/net + fi + if [ -n "${DNS}" ] + then + echo "dns_servers_${iface}=\"${DNS}\"" >> /etc/conf.d/net + fi + if [ -n "${DOMAIN}" ] + then + echo "dns_search_${iface}=\"${DOMAIN}\"" >> /etc/conf.d/net + fi + fi + ;; + esac +} + +get_ifmac() { + local iface=$1 + + # Example: 00:01:6f:e1:7a:06 + cat /sys/class/net/${iface}/address +} + + +get_ifdriver() { + local iface=$1 + + # Example: ../../../bus/pci/drivers/forcedeth (wanted: forcedeth) + local if_driver="$(readlink /sys/class/net/${iface}/device/driver)" + basename ${if_driver} +} + +get_ifbus() { + local iface=$1 + + # Example: ../../../bus/pci (wanted: pci) + # Example: ../../../../bus/pci (wanted: pci) + # Example: ../../../../../../bus/usb (wanted: usb) + local if_bus="$(readlink /sys/class/net/${iface}/device/bus)" + basename ${if_bus} +} + +get_ifproduct() { + local iface=$1 + local bus="$(get_ifbus ${iface})" + local if_pciaddr + local if_devname + local if_usbpath + local if_usbmanufacturer + local if_usbproduct + + if [[ ${bus} == "pci" ]]; then + # Example: ../../../devices/pci0000:00/0000:00:0a.0 (wanted: 0000:00:0a.0) + # Example: ../../../devices/pci0000:00/0000:00:09.0/0000:01:07.0 (wanted: 0000:01:07.0) + if_pciaddr="$(readlink /sys/class/net/${iface}/device)" + if_pciaddr="$(basename ${if_pciaddr})" + + # Example: 00:0a.0 Bridge: nVidia Corporation CK804 Ethernet Controller (rev a3) + # (wanted: nVidia Corporation CK804 Ethernet Controller) + if_devname="$(lspci -s ${if_pciaddr})" + if_devname="${if_devname#*: }" + if_devname="${if_devname%(rev *)}" + fi + + if [[ ${bus} == "usb" ]]; then + if_usbpath="$(readlink /sys/class/net/${iface}/device)" + if_usbpath="/sys/class/net/${iface}/$(dirname ${if_usbpath})" + if_usbmanufacturer="$(< ${if_usbpath}/manufacturer)" + if_usbproduct="$(< ${if_usbpath}/product)" + + [[ -n ${if_usbmanufacturer} ]] && if_devname="${if_usbmanufacturer} " + [[ -n ${if_usbproduct} ]] && if_devname="${if_devname}${if_usbproduct}" + fi + + if [[ ${bus} == "ieee1394" ]]; then + if_devname="IEEE1394 (FireWire) Network Adapter"; + fi + + echo ${if_devname} +} + +get_ifdesc() { + local iface=$1 + desc="$(get_ifproduct ${iface})" + if [[ -n ${desc} ]]; then + echo $desc + return; + fi + + desc="$(get_ifdriver ${iface})" + if [[ -n ${desc} ]]; then + echo $desc + return; + fi + + desc="$(get_ifmac ${iface})" + if [[ -n ${desc} ]]; then + echo $desc + return; + fi + + echo "Unknown" +} + +show_ifmenu() { + local old_ifs="${IFS}" + local opts + IFS=" +" + for ifname in $(/sbin/ifconfig -a | grep "^[^ ]"); do + ifname="${ifname%% *}" + [[ ${ifname} == "lo" ]] && continue + opts="${opts} ${ifname} '$(get_ifdesc ${ifname})'" + done + IFS="${old_ifs}" + + if ! eval dialog --menu \"Please select the interface that you wish to configure from the list below:\" 0 0 0 $opts 2>iface; then + exit + fi + + iface="$(< iface)" +} + +show_ifconfirm() { + local iface=$1 + local if_mac="$(get_ifmac ${iface})" + local if_driver="$(get_ifdriver ${iface})" + local if_bus="$(get_ifbus ${iface})" + local if_product="$(get_ifproduct ${iface})" + + local text="Details for network interface ${iface} are shown below.\n\nInterface name: ${iface}\n" + [[ -n ${if_product} ]] && text="${text}Device: ${if_product}\n" + [[ -n ${if_mac} ]] && text="${text}MAC address: ${if_mac}\n" + [[ -n ${if_driver} ]] && text="${text}Driver: ${if_driver}\n" + [[ -n ${if_bus} ]] && text="${text}Bus type: ${if_bus}\n" + text="${text}\nIs this the interface that you wish to configure?" + + if ! dialog --title "Interface details" --yesno "${text}" 15 70; then + result="no" + else + result="yes" + fi +} + +livecd_console_settings() { + # scan for a valid baud rate + case "$1" in + 300*) + LIVECD_CONSOLE_BAUD=300 + ;; + 600*) + LIVECD_CONSOLE_BAUD=600 + ;; + 1200*) + LIVECD_CONSOLE_BAUD=1200 + ;; + 2400*) + LIVECD_CONSOLE_BAUD=2400 + ;; + 4800*) + LIVECD_CONSOLE_BAUD=4800 + ;; + 9600*) + LIVECD_CONSOLE_BAUD=9600 + ;; + 14400*) + LIVECD_CONSOLE_BAUD=14400 + ;; + 19200*) + LIVECD_CONSOLE_BAUD=19200 + ;; + 28800*) + LIVECD_CONSOLE_BAUD=28800 + ;; + 38400*) + LIVECD_CONSOLE_BAUD=38400 + ;; + 57600*) + LIVECD_CONSOLE_BAUD=57600 + ;; + 115200*) + LIVECD_CONSOLE_BAUD=115200 + ;; + esac + if [ "${LIVECD_CONSOLE_BAUD}" = "" ] + then + # If it's a virtual console, set baud to 38400, if it's a serial + # console, set it to 9600 (by default anyhow) + case ${LIVECD_CONSOLE} in + tty[0-9]) + LIVECD_CONSOLE_BAUD=38400 + ;; + *) + LIVECD_CONSOLE_BAUD=9600 + ;; + esac + fi + export LIVECD_CONSOLE_BAUD + + # scan for a valid parity + # If the second to last byte is a [n,e,o] set parity + local parity + parity=$(echo $1 | rev | cut -b 2-2) + case "$parity" in + [neo]) + LIVECD_CONSOLE_PARITY=$parity + ;; + esac + export LIVECD_CONSOLE_PARITY + + # scan for databits + # Only set databits if second to last character is parity + if [ "${LIVECD_CONSOLE_PARITY}" != "" ] + then + LIVECD_CONSOLE_DATABITS=$(echo $1 | rev | cut -b 1) + fi + export LIVECD_CONSOLE_DATABITS + return 0 +} + +livecd_read_commandline() { + livecd_get_cmdline || return 1 + + for x in ${CMDLINE} + do + case "${x}" in + cdroot) + CDBOOT="yes" + export CDBOOT + ;; + cdroot\=*) + CDBOOT="yes" + export CDBOOT + ;; + console\=*) + local live_console + live_console=$(livecd_parse_opt "${x}") + + # Parse the console line. No options specified if + # no comma + LIVECD_CONSOLE=$(echo ${live_console} | cut -f1 -d,) + if [ "${LIVECD_CONSOLE}" = "" ] + then + # no options specified + LIVECD_CONSOLE=${live_console} + else + # there are options, we need to parse them + local livecd_console_opts + livecd_console_opts=$(echo ${live_console} | cut -f2 -d,) + livecd_console_settings ${livecd_console_opts} + fi + export LIVECD_CONSOLE + ;; + esac + done + return 0 +} + +livecd_fix_inittab() { + if [ "${CDBOOT}" = "" ] + then + return 1 + fi + + # Create a backup + cp -f /etc/inittab /etc/inittab.old + + # Comment out current getty settings + sed -i -e '/^c[0-9]/ s/^/#/' /etc/inittab + sed -i -e '/^s[01]/ s/^/#/' /etc/inittab + + # SPARC & HPPA console magic + if [ "${HOSTTYPE}" = "sparc" -o "${HOSTTYPE}" = "hppa" -o "${HOSTTYPE}" = "ppc64" ] + then + # Mount openprom tree for user debugging purposes + if [ "${HOSTTYPE}" = "sparc" ] + then + mount -t openpromfs none /proc/openprom + fi + + # SPARC serial port A, HPPA mux / serial + if [ -c "/dev/ttyS0" ] + then + LIVECD_CONSOLE_BAUD=$(stty -F /dev/ttyS0 speed) + echo "s0:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${LIVECD_CONSOLE_BAUD} ttyS0 vt100" >> /etc/inittab + fi + # HPPA software PDC console (K-models) + if [ "${LIVECD_CONSOLE}" = "ttyB0" ] + then + mknod /dev/ttyB0 c 11 0 + LIVECD_CONSOLE_BAUD=$(stty -F /dev/ttyB0 speed) + echo "b0:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${LIVECD_CONSOLE_BAUD} ttyB0 vt100" >> /etc/inittab + fi + # FB / STI console + if [ -c "/dev/vc/1" -o -c "/dev/tts/1" -o -c "/dev/tty2" ] + then + MODEL_NAME=$(cat /proc/cpuinfo |grep "model name"|sed 's/.*: //') + if [ "${MODEL_NAME}" = "UML" ] + then + for x in 0 1 2 3 4 5 6 + do + echo "c${x}:12345:respawn:/sbin/mingetty --noclear --autologin root tty${x}" >> /etc/inittab + done + else + for x in 1 2 3 4 5 6 + do + echo "c${x}:12345:respawn:/sbin/mingetty --noclear --autologin root tty${x}" >> /etc/inittab + done + fi + fi + if [ -c "/dev/hvc0" ] + then + einfo "Adding hvc console to inittab" + echo "s0:12345:respawn:/sbin/agetty -nl /bin/bashlogin 9600 hvc0 vt320" >> /etc/inittab + fi + + + # The rest... + else + if [ "${LIVECD_CONSOLE}" = "tty0" -o "${LIVECD_CONSOLE}" = "" ] + then + for x in 1 2 3 4 5 6 + do + echo "c${x}:12345:respawn:/sbin/agetty -nl /bin/bashlogin 38400 tty${x} linux" >> /etc/inittab + done + else + einfo "Adding ${LIVECD_CONSOLE} console to inittab" + echo "s0:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${LIVECD_CONSOLE_BAUD} ${LIVECD_CONSOLE} vt100" >> /etc/inittab + fi + fi + + # EFI-based machines should automatically hook up their console lines + if dmesg | grep -q '^Adding console on' + then + dmesg | grep '^Adding console on' | while read x; do + line=`echo "$x" | cut -d' ' -f4` + id=e`echo "$line" | grep -o '.\{1,3\}$'` + [ "${line}" = "${LIVECD_CONSOLE}" ] && continue # already setup above + case "$x" in + *options\ \'[0-9]*) speed=`echo "$x" | sed "s/.*options '//; s/[^0-9].*//"` ;; + *) speed=9600 ;; # choose a default, only matters if it is serial + esac + echo "$id:12345:respawn:/sbin/agetty -nl /bin/bashlogin ${speed} ${line} vt100" >> /etc/inittab + done + fi + + # force reread of inittab + kill -HUP 1 + return 0 +} diff --git a/app-misc/sabayonlive-tools/files/1.7.2/net-setup b/app-misc/sabayonlive-tools/files/1.7.2/net-setup new file mode 100755 index 000000000..5731773bf --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/net-setup @@ -0,0 +1,65 @@ +#!/bin/bash +# Copyright 1999-2005 Gentoo Foundation +# Copyright 2006-2007 Fabio Erculiani +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo/src/livecd-tools/net-setup,v 1.19 2006/05/30 20:20:11 wolf31o2 Exp $ + +if [ -f /sbin/livecd-functions.sh ] +then + source /sbin/livecd-functions.sh +else + echo "ERROR: /sbin/livecd-functions.sh could not be loaded!" + exit 1 +fi + +if [ ! -x $(which dialog) ] +then + echo "ERROR: The dialog utility is required for net-setup. Exiting!" + exit 1 +fi + +livecd_check_root || exit 1 + +# Hide any potential error messages from the readlink/dirname/etc calls below +exec 2>/dev/null + +if [ -z "${1}" ] +then + show_ifmenu + echo $iface +else + iface="${1}" +fi + +[ ! -d /tmp/setup.opts ] && mkdir /tmp/setup.opts +cd /tmp/setup.opts + +while true; do + show_ifconfirm $iface + [[ $result == "yes" ]] && break + show_ifmenu +done + +# Show stderr again +exec 2>/dev/stderr + +dialog --title "Network setup" --menu "This script is designed to setup both wired and wireless network settings. All questions below apply to the ${iface} interface only. Choose one option:" 20 60 7 1 "My network is wireless" 2 "My network is wired" 2> ${iface}.WIRED_WIRELESS +WIRED_WIRELESS="$(cat ${iface}.WIRED_WIRELESS)" +case ${WIRED_WIRELESS} in + 1) + livecd_config_wireless + livecd_config_ip + livecd_write_wireless_conf + ;; + 2) + livecd_config_ip + ;; + *) + exit 0 + ;; +esac +livecd_write_net_conf + +echo "Type \"ifconfig\" to make sure the interface was configured correctly." + +# vim: ts=4 diff --git a/app-misc/sabayonlive-tools/files/1.7.2/opengl-activator b/app-misc/sabayonlive-tools/files/1.7.2/opengl-activator new file mode 100755 index 000000000..b55bd2f82 --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/opengl-activator @@ -0,0 +1,318 @@ +#!/bin/sh +# Forked from eselect opengl Gentoo module - this is reaaaaaaaaaally faster +# this is used only at Live time, to avoid the use of Portage +# Copyright 2006-2008 Fabio Erculiani + +# Our data +ENV_FILE="/etc/env.d/03opengl" +PREFIX="/usr" +DST_PREFIX="/usr" +USE_PROFILE_HEADERS="no" +ES_VALID_MULTILIB_DIRS="lib lib32 lib64" + +# list_libdirs PUBLIC +# Returns a space separated list of libdirs available on this machine +list_libdirs() { + local dir libdirs + libdirs="" + for dir in ${ES_VALID_MULTILIB_DIRS} ; do + if grep -q "^/${dir}\(\|/\)$" /etc/ld.so.conf &> /dev/null ; then + libdirs=( ${libdirs[@]} ${dir} ) + fi + done + if [[ -z ${libdirs[@]} ]] ; then + # Broken or non-existing ld.so.conf + libdirs=( /lib* ) + libdirs=( ${libdirs[@]/\/lib/lib} ) + fi + echo "${libdirs[@]}" +} + +# has test list +# Return true if list contains test +has() { + local test=${1} item + shift + for item in $@ ; do + [[ ${item} == ${test} ]] && return 0 + done + return 1 +} + +# is_function function PUBLIC +# Test whether function exists +is_function() { + [[ $(type -t "${1}" ) == "function" ]] +} + +# is_number PUBLIC +# Returns true if and only if $1 is a positive whole number +is_number() { + [[ -n ${1} ]] && [[ -z ${1//[[:digit:]]} ]] +} + +get_current_implementation() { + local ret + local ldpath=$(cat ${ENV_FILE} | grep LDPATH | cut -d'"' -f 2) + + local opengl_profile=$(cat ${ENV_FILE} | grep OPENGL_PROFILE | cut -d'"' -f 2) + + if [[ -n ${opengl_profile} ]] ; then + ret="${opengl_profile}" + elif [[ -n ${ldpath} ]] ; then + ret="${ldpath%%:*}" + ret="${ret##*opengl/}" + ret="${ret%/lib*}" + fi + + echo ${ret} +} + +get_implementations() { + local ret dir + for x in $(list_libdirs) ; do + for dir in "${PREFIX}/${x}"/opengl/* ; do + [[ -d ${dir} && $(basename "${dir}") != "global" ]] || continue + has $(basename "${dir}") ${ret} && continue + ret=${ret:+${ret} }$(basename "${dir}") + done + done + + echo ${ret} +} + +setup_lib_symlinks() { + local profile_libdir=${1} + local libdir=${2} + local file + local rootfile + + mkdir -p "${libdir}" || echo "Failed to create ${libdir}" + + pushd "${libdir}" &> /dev/null + # First remove old symlinks + for file in libGL{,core}.{a,so,la} ; do + if [[ -h ${file} ]] ; then + rm -f "${file}" || echo -q "Failed to delete ${file}" + fi + done + + # Note that we don't do .so*, just .so on purpose. The + # loader knows to look in the profile dir, and the + # linked just needs the .so + for file in ${profile_libdir}/libGL{,core}.{so,a,la}; do + rootfile="${file}" + [[ -f ${file} ]] || continue + if [[ -f $(basename "${file}") ]] ; then + rm -f "$(basename "${file}")" || echo -q "Failed to delete ${libdir}/$(basename "${file}")" + fi + + # Fix libtool archives (#48297) + if [[ ${file%.la} != ${file} ]] ; then + sed "s:${profile_libdir}:${libdir}:g" "${file}" > "$(basename "${file}")" || echo "Failed to create ${libdir}/$(basename "${file}")" + else + ln -s "${rootfile}" || echo "Failed to create ${libdir}/$(basename "${file}")" + fi + done + popd &> /dev/null +} + +set_new_implementation() { + local gl_implem=${1} + local avail_implems=$(get_implementations) + + # Set a sane umask... bug #83115 + umask 022 + + if ! has ${gl_implem} ${avail_implems}; then + echo "Invalid profile selected." + exit 1 + fi + + echo -n "Switching to ${gl_implem} OpenGL interface..." + + local libdir + for libdir in $(list_libdirs); do + [[ ${ROOT} != / ]] && libdir=${libdir//${ROOT}} + # Special case handling of lib32 because it can be a symlink to + # emul libs + # Kill this special case once amd64's 2004.3 crap is gone =) --eradicator + if [[ ${libdir} = "lib32" ]] ; then + [[ -d ${PREFIX}/${libdir}/opengl ]] || continue + else + [[ -d ${PREFIX}/${libdir}/opengl && ! -h ${PREFIX}/${libdir} ]] || continue + fi + + # Fallback on xorg-x11 if we don't have this implementation for this libdir. + local gl_local + if [[ ! -d ${PREFIX}/${libdir}/opengl/"${gl_implem}" ]] ; then + gl_local="xorg-x11" + else + gl_local="${gl_implem}" + fi + + setup_lib_symlinks "${PREFIX}/${libdir}/opengl/${gl_local}/lib" "${DST_PREFIX}/${libdir}" + + if [[ -e ${PREFIX}/${libdir}/opengl/${gl_local}/lib/tls ]] ; then + setup_lib_symlinks "${PREFIX}/${libdir}/opengl/${gl_local}/lib/tls" "${DST_PREFIX}/${libdir}/tls" + fi + + local moduledir + if [[ -e ${DST_PREFIX}/${libdir}/xorg/modules ]] ; then + moduledir="xorg/modules" + else + moduledir="modules" + fi + + if [[ -e ${PREFIX}/${libdir}/opengl/${gl_local}/extensions ]] ; then + mkdir -p "${DST_PREFIX}/${libdir}/${moduledir}/extensions" || echo "Failed to create ${DST_PREFIX}/${libdir}/${moduledir}/extensions" + pushd "${DST_PREFIX}/${libdir}/${moduledir}/extensions" &> /dev/null + # First remove old symlinks + for file in libglx.so libglx.a; do + if [[ -h ${file} ]] ; then + rm -f "${file}" || echo "Failed to delete ${DST_PREFIX}/${libdir}/${moduledir}/extensions/${file}" + fi + done + + for file in ${PREFIX}/${libdir}/opengl/${gl_local}/extensions/*.{so,a,la}; do + [[ -f ${file} ]] || continue + if [[ -f $(basename "${file}") ]] ; then + rm -f "$(basename "${file}")" || echo "Failed to delete ${DST_PREFIX}/${libdir}/${moduledir}/extensions/$(basename "${file}")" + fi + + # Fix libtool archives (#48297) + if [[ ${file%.la} != ${file} ]] ; then + sed "s:${PREFIX}/[^/]*/opengl/[^/]*/lib:${DST_PREFIX}/${libdir}:g" "${file}" > "$(basename "${file}")" || echo "Failed to create ${DST_PREFIX}/${libdir}/${moduledir}/extensions/$(basename "${file}")" + else + ln -s "${file}" || echo "Failed to create ${libdir}/$(basename "${file}")" + fi + done + popd &> /dev/null + fi + + # Setup the includes + mkdir -p "${DST_PREFIX}/include/GL" || echo "Failed to create ${DST_PREFIX}/include/GL" + pushd "${DST_PREFIX}/include/GL" &> /dev/null + for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h; do + # IMPORTANT + # It is preferable currently to use the standard glext.h file + # however if an OpenGL provider must use a self produced glext.h + # then it should be installed to ${gl_implem}/include and the user + # can add the --impl-headers option to select it. + + if [[ "${USE_PROFILE_HEADERS}" == "yes" ]] ; then + # Check the profile first. + if [[ -e ${PREFIX}/${libdir}/opengl/${gl_implem}/include/${file} ]] ; then + if [[ -f ${file} || ( -L ${file} && ! -e ${file} ) ]] ; then + rm -f "${file}" || echo "Failed to delete ${DST_PREFIX}/include/GL/$(basename "${file}")" + fi + + ln -s ${PREFIX}/${libdir}/opengl/${gl_implem}/include/${file} || echo "Failed to create ${DST_PREFIX}/include/GL/$(basename "${file}")" + continue + fi + fi + + if [[ -e ${PREFIX}/${libdir}/opengl/global/include/${file} ]] ; then + if [[ -f ${file} || ( -L ${file} && ! -e ${file} ) ]] ; then + rm -f "${file}" || echo "Failed to delete ${DST_PREFIX}/include/GL/$(basename "${file}")" + fi + + ln -s ${PREFIX}/${libdir}/opengl/global/include/${file} || echo "Failed to create ${DST_PREFIX}/include/GL/$(basename "${file}")" + elif [[ -e ${PREFIX}/${libdir}/opengl/${gl_implem}/include/${file} ]] ; then + if [[ -f ${file} || ( -L ${file} && ! -e ${file} ) ]] ; then + rm -f "${file}" || echo "Failed to delete ${DST_PREFIX}/include/GL/$(basename "${file}")" + fi + + ln -s ${PREFIX}/${libdir}/opengl/${gl_implem}/include/${file} || echo "Failed to create ${DST_PREFIX}/include/GL/$(basename "${file}")" + elif [[ -e ${PREFIX}/${libdir}/opengl/xorg-x11/include/${file} ]] ; then + if [[ -f ${file} || ( -L ${file} && ! -e ${file} ) ]] ; then + rm -f "${file}" || echo "Failed to delete ${DST_PREFIX}/include/GL/$(basename "${file}")" + fi + + ln -s ${PREFIX}/${libdir}/opengl/xorg-x11/include/${file} || echo "Failed to create ${DST_PREFIX}/include/GL/$(basename "${file}")" + fi + done + popd &> /dev/null + + # Setup the $LDPATH + ldpath="${ldpath:+${ldpath}:}${PREFIX}/${libdir}/opengl/${gl_local}/lib" + + done + + sed -i '/LDPATH=.*/d' ${ENV_FILE} + echo "LDPATH=\"${ldpath}\"" >> ${ENV_FILE} + oldldpath=$(cat /etc/profile.env|grep LDPATH | cut -d"'" -f2) + sed -i '/export LDPATH=.*/d' /etc/profile.env + echo "export LDPATH='"${ldpath}":"${oldldpath}"'" >> /etc/profile.env + echo "export LD_LIBRARY_PATH='"${ldpath}"'" >> /etc/profile.env + sed -i '/LD_LIBRARY_PATH=.*/d' ${ENV_FILE} + echo 'LD_LIBRARY_PATH="'${ldpath}'"' >> ${ENV_FILE} + + sed -i "s/OPENGL_PROFILE=.*/OPENGL_PROFILE=\"${gl_implem}\"/" ${ENV_FILE} + sed -i "s/OPENGL_PROFILE=.*/OPENGL_PROFILE='${gl_implem}'/" /etc/profile.env + + source /etc/profile &> /dev/null + echo " done" +} + +do_set() { + local action="error" + local current=$(get_current_implementation) + local available=$(get_implementations) + local new + + while [[ ${#@} -gt 0 ]] ; do + local opt=${1} + shift + case ${opt} in + *) + action="set-implementation" + if has ${opt} ${available}; then + new="${opt}" + else + echo "Unrecognized option: ${opt}" + fi + ;; + esac + done + + case ${action} in + set-implementation) + if [[ -n ${new} ]] ; then + set_new_implementation ${new} + sed -i "s/opengl\/xorg-x11\//opengl\/${new}\//" /etc/ld.so.conf + sed -i "s/opengl\/ati\//opengl\/${new}\//" /etc/ld.so.conf + sed -i "s/opengl\/nvidia\//opengl\/${new}\//" /etc/ld.so.conf + #nice -20 ldconfig -X &> /dev/null + return $? + else + echo "Please specify an implementation to set" + fi + ;; + *) + echo "Invalid usage of set action." + ;; + esac + +} + +do_show() { + local current=$(get_current_implementation) + echo ${current} +} + +is_live=$(cat /proc/cmdline | grep cdroot) + +if [ -n "$is_live" ]; then + if [ "$1" == "show" ]; then + do_show + else + do_set $@ + fi +else + if [ "$1" == "show" ]; then + eselect opengl show + else + eselect opengl set $@ + fi +fi diff --git a/app-misc/sabayonlive-tools/files/1.7.2/sabayonlive b/app-misc/sabayonlive-tools/files/1.7.2/sabayonlive new file mode 100755 index 000000000..cfc26c800 --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/sabayonlive @@ -0,0 +1,970 @@ +#!/sbin/runscript +# Copyright 2004-2007 Fabio Erculiani +# Distributed under the terms of the GNU General Public License v2 + +depend() { + + before xdm + after alsasound + before splash + +} + +start_acceleration_manager() { + + source /etc/profile + cmdline_xgl_exist=$(cat /proc/cmdline | grep " xgl") + cmdline_aiglx_exist=$(cat /proc/cmdline | grep " aiglx") + cmdline_noaccelmanager_exist=$(cat /proc/cmdline | grep " noaccelmanager") + + # Configure XGL ? + if [ -n "$cmdline_xgl_exist" ]; then + #echo -en "\E[33;36m * \E[0m \E[01;32m Configuring the system for XGL... \E[0m" + /sbin/xgl-setup enable &> /dev/null + #echo -e "Done" + killall ogg123 &> /dev/null + rm -rf /var/tmp/music.ogg &> /dev/null + fi + + # Configure AIGLX ? + if [ -n "$cmdline_aiglx_exist" ] && [ -z "$cmdline_xgl_exist" ]; then + #echo -en "\E[33;36m * \E[0m \E[01;32m Configuring the system for AIGLX... \E[0m" + /sbin/aiglx-setup enable &> /dev/null + #echo -e "Done" + killall ogg123 &> /dev/null + rm -rf /var/tmp/music.ogg &> /dev/null + fi + + # Start-up accel-manager - this must be always after gpu-configuration + if [ -z "$cmdline_noaccelmanager_exist" ] && [ -z "$cmdline_xgl_exist" ] && [ -z "$cmdline_aiglx_exist" ]; then + # ok, no xgl,aiglx and noaccelmanager parameters at boot. start the app + cmdline_nox_exist=$(cat /proc/cmdline | grep " nox") + cmdline_installer_gui_exist=$(cat /proc/cmdline | grep " installer-gui") + cmdline_installer_text_exist=$(cat /proc/cmdline | grep " installer-text") + cmdline_mediacenter_exist=$(cat /proc/cmdline | grep "mediacenter") + cmdline_game_exist=$(cat /proc/cmdline | grep " sabayon-game=") + cmdline_coldwar_exist=$(cat /proc/cmdline | grep " coldwar") + cmdline_vesaonly_exist=$(cat /proc/cmdline | grep "vesaonly") + if [ -z "$cmdline_nox_exist" ] && [ -z "$cmdline_installer_gui_exist" ] && [ -z "$cmdline_installer_text_exist" ] && [ -z "$cmdline_mediacenter_exist" ] && [ -z "$cmdline_game_exist" ] && [ -z "$cmdline_vesaonly_exist" ]; then + # Start KDM restarter check + start-stop-daemon --start --background --exec /usr/share/accel-manager/accel-server-handler + /usr/share/accel-manager/desktop-accel-selector &> /dev/null + else + killall ogg123 &> /dev/null + rm -rf /var/tmp/music.ogg &> /dev/null + fi + else + start-stop-daemon --start --exec /sbin/ldconfig -- + fi + + if [ -n "$cmdline_noaccelmanager_exist" ]; then + killall ogg123 &> /dev/null + rm -rf /var/tmp/music.ogg &> /dev/null + fi + +} + +prepare_fluxbox_locked_autologin() { + + # change default wm to fluxbox + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=fluxbox" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + # Set KDM Autologin and scramble root/sabayonuser passwords + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=.*/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + sed -i 's/AutoLoginDelay=.*/AutoLoginDelay=0/' /usr/kde/3.5/share/config/kdm/kdmrc + # Change passwords for security + echo root:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + echo sabayonuser:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + +} + +start() { + + # Kept for compatibility and for SLI + if [ ! -e "/mnt/gentoo" ];then + mkdir /mnt/gentoo > /dev/null + fi + + # Copy sabayonuser directory + rm -rf /home/sabayonuser + cp /etc/skel /home/sabayonuser -Rp + chown sabayonuser:users /home/sabayonuser -R + + # Disable memory eating services + rm -f /usr/share/autostart/skim.desktop + rm -f /usr/share/autostart/kerry.autostart.desktop + rm -f /usr/share/autostart/kbluetooth.autostart.desktop + rm -f /usr/share/autostart/beagled.desktop + + # Remove broken entries in /etc/mtab + sed -i '/.*newroot.*/d' /etc/mtab + + + # Try to fix 8139cp and 8139too problems + is_8139_loaded=$(lsmod | grep 8139cp || lsmod | grep 8139too) + if [ -n "$is_8139_loaded" ]; then + # Yes it is + are_there_problems_with_8139cp=$(dmesg | grep -i 'Try the "8139too" driver instead') + are_there_problems_with_8139too=$(dmesg | grep -i 'Try the "8139cp" driver instead') + if [ -n "$are_there_problems_with_8139cp" ]; then + rmmod 8139cp + echo "blacklist 8139cp" >> /etc/modules.d/blacklist + modprobe 8139too + fi + if [ -n "$are_there_problems_with_8139too" ]; then + rmmod 8139too + echo "blacklist 8139too" >> /etc/modules.d/blacklist + modprobe 8139cp + fi + fi + + # collect network devices + dev_list=$(cat /proc/net/dev | awk '{ print $1 }' | egrep '^(eth|ath|wlan|ppp|ra)' | cut -d: -f1 | sed -e :a -e '$!N;s/\n/ /') + + cmdline_nodhcp_exist=$(cat /proc/cmdline | grep nodhcp) + + if [ -n "$cmdline_nodhcp_exist" ]; then + # write config for network devices + for word in $dev_list; do + echo "config_$word=( \"dhcp\" )" >> /etc/conf.d/net + echo "dhclient_$word=\"-t 10\"" >> /etc/conf.d/net + done + fi + +#===============================================================) +# insmod and rmmod: ) +#===============================================================) + + cmdline_rmmod_exist=$(cat /proc/cmdline | grep rmmod=) + if [ -n "$cmdline_rmmod_exist" ];then + + for word in `cat /proc/cmdline` ; do + case $word in + rmmod=*) + rmmod_toset=$(echo $word | cut -d "=" -f 2) + rmmod_comma_separated=$(echo $rmmod_toset | grep ",") + if [ -n "$rmmod_comma_separated" ]; then + while [ "`echo $rmmod_toset | grep ','`" != "" ]; do + rmmod_toset=$(echo $rmmod_toset | sed 's/,/ /') + done + for word2 in $rmmod_toset; do + rmmod $word2 &> /dev/null + echo -e "\E[33;36m * \E[0m\E[01;32m Removing kernel module: "$word2 "\E[0m" + done + else + rmmod $rmmod_toset &> /dev/null + echo -e "\E[33;36m * \E[0m\E[01;32m Removing kernel module: "$insmod_toset "\E[0m" + fi + + ;; + esac + done + + fi + + cmdline_insmod_exist=$(cat /proc/cmdline | grep insmod=) + if [ -n "$cmdline_insmod_exist" ];then + + for word in `cat /proc/cmdline` ; do + case $word in + insmod=*) + insmod_toset=$(echo $word | cut -d "=" -f 2) + insmod_comma_separated=$(echo $insmod_toset | grep ",") + if [ -n "$insmod_comma_separated" ]; then + while [ "`echo $insmod_toset | grep ','`" != "" ]; do + insmod_toset=$(echo $insmod_toset | sed 's/,/ /') + done + for word2 in $insmod_toset; do + modprobe $word2 &> /dev/null + echo -e "\E[33;36m * \E[0m\E[01;32m Loading kernel module: "$word2 "\E[0m" + done + else + modprobe $insmod_toset &> /dev/null + echo -e "\E[33;36m * \E[0m\E[01;32m Loading kernel module: "$insmod_toset "\E[0m" + fi + + ;; + esac + done + + fi + +#===============================================================) +# Restore audio volumes ) +#===============================================================) + + cmdline_mute_exists=$(cat /proc/cmdline | grep "sound=mute") + if [ -z "$cmdline_mute_exists" ] && [ ! -e "/etc/amixer_has_been_run" ]; then + /usr/bin/amixer -q set Master 70% unmute &> /dev/null + /usr/bin/amixer -q set PCM 70% unmute &> /dev/null + /usr/bin/amixer -q set Front 70% unmute &> /dev/null + /usr/bin/amixer -q set Surround 70% unmute &> /dev/null + /usr/bin/amixer -q set Center 70% unmute &> /dev/null + /usr/bin/amixer -q set LFE 70% unmute &> /dev/null + /usr/bin/amixer -q set "Analog Mix" 70% unmute &> /dev/null + /usr/bin/amixer -q set "Aux" 70% unmute &> /dev/null + /usr/bin/amixer -q set "Aux2" 70% unmute &> /dev/null + /usr/bin/amixer -q set "PCM Center" 70% unmute &> /dev/null + /usr/bin/amixer -q set "PCM Front" 70% unmute &> /dev/null + /usr/bin/amixer -q set "PCM LFE" 70% unmute &> /dev/null + /usr/bin/amixer -q set "PCM Side" 70% unmute &> /dev/null + /usr/bin/amixer -q set "PCM Surround" 70% unmute &> /dev/null + /usr/bin/amixer -q set "Side" 70% unmute &> /dev/null + /usr/bin/amixer -q set 'Input Gain' 50% &> /dev/null + /usr/bin/amixer -q set FM 60% unmute &> /dev/null + alsactl store &> /dev/null + fi + + +#===============================================================) +# Power Managment: ) +# for some notebooks is better to set the processor speed ) +# to the lowest frequency ) +#===============================================================) + + cmdline_nofreqscaling_exist=$(cat /proc/cmdline | grep nofreqscaling) + if [ -z "$cmdline_nofreqscaling_exist" ];then + + # Workaround for VIA Nehemiah + cpu_is_nehemiah=$(cat /proc/cpuinfo | grep "VIA Nehemiah" ) + if [ -z "$cpu_is_nehemiah" ]; then + + echo -e "\E[33;36m * \E[0m\E[01;32m Enabling on-demand CPU Power scaling \E[0m" + if [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed ]; then + echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + fi + + else + + echo -e "\E[33;36m * \E[0m\E[01;32m CPU Detected is VIA Nehemiah (Power set to Performance) \E[0m" + if [ -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed ]; then + echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + fi + + fi + + + else + + echo -e "\E[33;36m * \E[0m\E[01;32m CPU Power scaling disabled \E[0m" + + fi + +#===============================================================) +# PASSWORD HANDLING: ) +# Here I decide how use the passwords ) +#===============================================================) + + cmdline_autoscramble_exist=$(cat /proc/cmdline | grep autoscramble) + + if [ -n "$cmdline_autoscramble_exist" ]; then + + echo + echo -e "\E[33;36m * \E[0m\E[01;36m Autoscrambling root passwords for S E C U R I T Y" + echo root:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + echo sabayonuser:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + + else + + echo + echo -e "\t *\E[01;32m root password\E[0m : \E[01;33m root \E[0m" + echo -e "\t *\E[01;32m username\E[0m : \E[01;33m sabayonuser\E[0m |\E[01;32m password\E[0m : \E[01;33m sabayonuser\E[0m" + + fi + + cmdline_session_exist=$(cat /proc/cmdline | grep session=) + if [ -n "$cmdline_session_exist" ]; then + # Session exists, should be: kde,gnome,fluxbox + + for word in `cat /proc/cmdline` ; do + case $word in + session=kde) + + # change default DE to KDE + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=kde-3.5" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=false/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + + ;; + session=gnome) + + # change default DE to GNOME + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=gnome" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=false/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + + ;; + session=metisse-kde) + + # change default DE to Metisse on KDE + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=metisse-kde" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=false/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + + ;; + session=metisse-gnome) + + # change default DE to Metisse on GNOME + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=metisse-gnome" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=false/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + + ;; + session=fluxbox) + + # change default DE to Fluxbox + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=fluxbox" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=false/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + ;; + esac + done + + + + fi + + + # XsistenCe Mode + persistent_exists=$(cat /proc/cmdline | grep "xsistence") + if [ -n "$persistent_exists" ]; then + + xsistence_mb=$(cat /proc/cmdline | grep "xsistence_mb=") + if [ -n "$xsistence_mb" ];then + + for word in `cat /proc/cmdline` ; do + case $word in + xsistence_mb=*) + xsistence_img_mb=$(echo $word | cut -d "=" -f 2) + ;; + esac + done + + else + xsistence_img_mb=28 + fi + + xsistence_found="0" + # Persistent Mode enabled + echo -e "\E[33;36m * \E[0m \E[01;32m Enabling XsistenCe Mode (logfile: /tmp/xsistence.log)... \E[0m" + echo -en "\E[33;36m * \E[0m \E[01;32m Please plug-in your USB Memory Stick now (10 seconds)... \E[0m" + sleep 10 + echo -en "Waiting for devices..." + sleep 6 + echo -e "Scanning." + sleep 1 + for file in /sys/block/*/device; do + is_floppy=$(echo $file | grep "fd[0-99]") + is_sr=$(echo $file | grep "sr[0-99]") + + if [ -z "$is_floppy" ] || [ -z "$is_sr" ]; then + + # if it's not a floppy or an external recorder, scrub it + device=$(echo $file | cut -d/ -f4) + if [ -e /sys/block/$device/removable ]; then + is_removable=$(cat /sys/block/$device/removable) + else + is_removable="0" + fi + if [ "$is_removable" = "1" ]; then + # I have found a removable drive, seek it ! + + # Counting partitions... + partitions_list=$(ls /dev/$device*) + + for word in $partitions_list; do + + if [ "$xsistence_found" = "0" ]; then + + # Mount them and verify the correct operation + mkdir /mnt/xsistence &> /dev/null + mount $word /mnt/xsistence &> /dev/null + if [ "$?" = "0" ]; then + + if [ ! -e /tmp/xsistence.log ]; then + echo "Mounted "$word "for test" > /tmp/xsistence.log + else + echo "Mounted "$word "for test" >> /tmp/xsistence.log + fi + + # Look for "xsistence-mode" file (case insensitive) + file_found=$(find /mnt/xsistence -maxdepth 1 -nowarn -iname xsistence-mode) + if [ -n "$file_found" ]; then + + # test r/w capabilities + touch /mnt/xsistence/.touch-test &> /dev/null + if [ "$?" = "0" ] && [ -e /mnt/xsistence/.touch-test ]; then + + rm /mnt/xsistence/.touch-test + # Look for existing image + if [ -e /mnt/xsistence/sabayon-xsistence.ext3 ]; then + + if [ ! -e /tmp/xsistence.log ]; then + echo "/mnt/xsistence/sabayon-xsistence.ext3 on "$word "exists" > /tmp/xsistence.log + else + echo "/mnt/xsistence/sabayon-xsistence.ext3 on "$word "exists" >> /tmp/xsistence.log + fi + + # found ! mount it + mount -o loop /mnt/xsistence/sabayon-xsistence.ext3 /home &> /dev/null + if [ "$?" = "0" ]; then + if [ ! -e /tmp/xsistence.log ]; then + echo "/mnt/xsistence/sabayon-xsistence.ext3 mounted using "$word > /tmp/xsistence.log + else + echo "/mnt/xsistence/sabayon-xsistence.ext3 mounted using "$word >> /tmp/xsistence.log + fi + xsistence_found="1" + # print the output + echo -e "\t \t Found XsistenCe on "$word". Mounted and fully working." + else + if [ ! -e /tmp/xsistence.log ]; then + echo "/mnt/xsistence/sabayon-xsistence.ext3 cannot be mounted using " $word > /tmp/xsistence.log + else + echo "/mnt/xsistence/sabayon-xsistence.ext3 cannot be mounted using " $word >> /tmp/xsistence.log + fi + umount /mnt/xsistence -f &> /dev/null + rmdir /mnt/xsistence /&> /dev/null + # print the output + echo -e "\t \t Found XsistenCe on "$word". But the image does not work." + + fi + + + + else + + if [ ! -e /tmp/xsistence.log ]; then + echo "/mnt/xsistence/sabayon-xsistence.ext3 on "$word "does not exist" > /tmp/xsistence.log + else + echo "/mnt/xsistence/sabayon-xsistence.ext3 on "$word "does not exist" >> /tmp/xsistence.log + fi + + # create disk image and test available space + # need to find another way to get avaiable space + + # output + echo -en "\t \t Trying to create the image on "$word"..." + dd if=/dev/zero of=/mnt/xsistence/sabayon-xsistence.ext3 count=$xsistence_img_mb bs=1024000 &> /dev/null + if [ "$?" = "0" ]; then + losetup /dev/loop7 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="7" + + if [ "$?" != "0" ]; then + # trying another loopback device + losetup /dev/loop6 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="6" + fi + if [ "$?" != "0" ]; then + # trying another loopback device + losetup /dev/loop5 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="5" + fi + if [ "$?" != "0" ]; then + # trying another loopback device + losetup /dev/loop4 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="4" + fi + if [ "$?" != "0" ]; then + # trying another loopback device + losetup /dev/loop3 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="3" + fi + if [ "$?" != "0" ]; then + # trying another loopback device + losetup /dev/loop2 /mnt/xsistence/sabayon-xsistence.ext3 + loopdevice="2" + fi + + if [ "$?" = "0" ]; then + # loopback ok, formatting... + mkfs.ext3 /dev/loop$loopdevice &> /dev/null + if [ "$?" = "0" ]; then + if [ ! -e /tmp/xsistence.log ]; then + echo "Image formatted and ready to get filled " $word "using loopback" $loopdevice > /tmp/xsistence.log + else + echo "Image formatted and ready to get filled " $word "using loopback" $loopdevice >> /tmp/xsistence.log + fi + + mkdir /mnt/loopbacktemp + mount -o loop /mnt/xsistence/sabayon-xsistence.ext3 /mnt/loopbacktemp + if [ "$?" = "0" ]; then + if [ ! -e /tmp/xsistence.log ]; then + echo "Image formatted and ready to get filled " $word "using loopback" $loopdevice > /tmp/xsistence.log + else + echo "Image formatted and ready to get filled " $word "using loopback" $loopdevice >> /tmp/xsistence.log + fi + cp -Rp /home/* /mnt/loopbacktemp/ + mount --move /mnt/loopbacktemp/ /home/ + if [ "$?" = "0" ]; then + echo -e "image created and mounted !" + xsistence_found="1" + if [ ! -e /tmp/xsistence.log ]; then + echo "Image created and mounted using" $word "and loopback" $loopdevice > /tmp/xsistence.log + else + echo "Image created and mounted using" $word "and loopback" $loopdevice >> /tmp/xsistence.log + fi + else + echo -e "Sorry, cannot move mount point" + if [ ! -e /tmp/xsistence.log ]; then + echo "Cannot move mount point for" $word "and loopback" $loopdevice > /tmp/xsistence.log + else + echo "Cannot move mount point for" $word "and loopback" $loopdevice >> /tmp/xsistence.log + fi + fi + else + echo -e "Sorry, cannot mount the image" + if [ ! -e /tmp/xsistence.log ]; then + echo "Image not mounted" $word "using loopback" $loopdevice > /tmp/xsistence.log + else + echo "Image not mounted" $word "using loopback" $loopdevice >> /tmp/xsistence.log + fi + fi + + else + echo -e "Sorry, cannot format the image" + if [ ! -e /tmp/xsistence.log ]; then + echo "Cannot format the image on " $word > /tmp/xsistence.log + else + echo "Cannot format the image on " $word >> /tmp/xsistence.log + fi + fi + + + else + echo -e "Sorry, no free loopback device" + if [ ! -e /tmp/xsistence.log ]; then + echo "No free loopback device for " $word > /tmp/xsistence.log + else + echo "No free loopback device for " $word >> /tmp/xsistence.log + fi + fi + + + + + else + echo -e "Sorry, " $xsistence_img_mb " MB required" + rm -rf /mnt/xsistence/sabayon-xsistence.ext3 &> /dev/null + fi + + + fi + + + + else + if [ ! -e /tmp/xsistence.log ]; then + echo "No read-write capabilities for " $word > /tmp/xsistence.log + else + echo "No read-write capabilities for " $word >> /tmp/xsistence.log + fi + umount /mnt/xsistence -f &> /dev/null + rmdir /mnt/xsistence /&> /dev/null + + fi + + + else + if [ ! -e /tmp/xsistence.log ]; then + echo "xsistence-mode not found on " $word > /tmp/xsistence.log + else + echo "xsistence-mode not found on " $word >> /tmp/xsistence.log + fi + umount /mnt/xsistence -f &> /dev/null + rmdir /mnt/xsistence /&> /dev/null + fi + + else + if [ ! -e /tmp/xsistence.log ]; then + echo "Tried to mount " $word "without luck" > /tmp/xsistence.log + else + echo "Tried to mount " $word "without luck" >> /tmp/xsistence.log + fi + fi + + + fi + done + + + + # if not create it + + # mount it + + # bind the files + echo + + fi + + fi + + + done + + if [ "$xsistence_found" = "0" ]; then + echo -e "\t \t No XsistenCe ready devices found" + fi + + else + # Persistent Mode disabled + echo -e "\E[33;36m * \E[0m \E[01;32m XsistenCe is not enabled. \E[0m" + + fi + + + # Create /media for removable devices + if [ ! -e /media ]; then + mkdir /media + chmod 755 /media + fi + + + # Check if KEYMAP is forced by cmdline + cmdline_keymap_exist=$(cat /proc/cmdline | grep -i "KEYMAP=") + cmdline_keymap_isolinux_exist=$(cat /proc/cmdline | grep -i "console-setup/layoutcode=") + + if [ -n "$cmdline_keymap_isolinux_exist" ]; then + cmdline_keymap_exist="console-setup" + fi + + if [ -n "$cmdline_keymap_exist" ];then + + if [ "$cmdline_keymap_exist" == "console-setup" ]; then + # detect keymap + for word in `cat /proc/cmdline` ; do + case $word in + console-setup/layoutcode=*) + keymap_toset=$(echo $word | cut -d "=" -f 2) + ;; + esac + done + else + + # detect keymap + for word in `cat /proc/cmdline` ; do + case $word in + KEYMAP=*) + keymap_toset=$(echo $word | cut -d "=" -f 2) + ;; + keymap=*) + keymap_toset=$(echo $word | cut -d "=" -f 2) + ;; + esac + done + + fi + + if [ -n "$keymap_toset" ]; then + /sbin/keyboard-setup $keymap_toset &> /dev/null + fi + + fi + + + # Setup SAMBA Hostname + smbhostname="sabayonlinux-"$RANDOM + execute_cmd="sed -i \"s/netbios name = .*/netbios name = $smbhostname/\" /etc/samba/smb.conf" + echo $execute_cmd | /bin/bash + /etc/init.d/samba restart --nodeps &> /dev/null + + tor_exists=$(cat /proc/cmdline | grep " tor") + if [ -n "$tor_exists" ]; then + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Safe Browsing extensions...\E[0m" + /sbin/safe-browsing-setup enable &> /dev/null + echo -e Done + fi + + cmdline_mediacenter_exists=$(cat /proc/cmdline | grep mediacenter) + if [ -n "$cmdline_mediacenter_exists" ]; then + # Start Elisa + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Media Center...\E[0m" + + # change default wm to fluxbox + echo "[Desktop]" > /home/sabayonuser/.dmrc + echo "Session=fluxbox" >> /home/sabayonuser/.dmrc + chown sabayonuser /home/sabayonuser/.dmrc + # Set KDM Autologin and scramble root/sabayonuser passwords + #AutoLoginEnable=true + sed -i 's/AutoLoginEnable=.*/AutoLoginEnable=true/' /usr/kde/3.5/share/config/kdm/kdmrc + #AutoLoginUser=sabayonuser + sed -i 's/AutoLoginUser=.*/AutoLoginUser=sabayonuser/' /usr/kde/3.5/share/config/kdm/kdmrc + sed -i 's/AutoLoginDelay=.*/AutoLoginDelay=0/' /usr/kde/3.5/share/config/kdm/kdmrc + # Change passwords for security + echo root:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + echo sabayonuser:\`pwgen -s 16\` | chpasswd > /dev/null 2>&1 + + # Set Elisa to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & elisa && sudo halt" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + # Mount games squashfs if exists + if [ -e "/mnt/cdrom/games.squashfs" ]; then + + mkdir -p /install-data/games-ro &> /dev/null + mount -o loop /mnt/cdrom/games.squashfs /install-data/games-ro &> /dev/null + mkdir -p /install-data/games-changes &> /dev/null + mount -t tmpfs none /install-data/games-changes &> /dev/null + mount -t aufs -o br=/install-data/games-changes:/install-data/games-ro none /install-data/games + + # copy warsow + cp /usr/share/applications/warsow-warsow.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy sauerbraten + cp /usr/share/applications/sauerbraten_client-bin-sauerbraten.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy dangerdeep + cp /usr/share/applications/dangerdeep-dangerdeep.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy torcs + cp /usr/share/applications/torcs-torcs.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy nexuiz + cp /usr/share/applications/nexuiz-glx-nexuiz.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy savage + cp /usr/share/applications/savage-savage-bin.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy flightgear + cp /usr/share/applications/fgfs-flightgear.desktop /home/sabayonuser/Desktop/ &> /dev/null + # copy secondlife + cp /usr/share/applications/secondlife-bin-secondlife-bin.desktop /home/sabayonuser/Desktop &> /dev/null + + chown sabayonuser /home/sabayonuser/Desktop/*.desktop + + cmdline_warsow_exists=$(cat /proc/cmdline | grep sabayon-game=warsow) + if [ -n "$cmdline_warsow_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Warsow...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/warsow && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_sauerbraten_exists=$(cat /proc/cmdline | grep sabayon-game=sauerbraten) + if [ -n "$cmdline_sauerbraten_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Sauerbraten...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/sauerbraten_client-bin && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_dangerdeep_exists=$(cat /proc/cmdline | grep sabayon-game=dangerdeep) + if [ -n "$cmdline_dangerdeep_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Dangerdeep...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/dangerdeep && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_torcs_exists=$(cat /proc/cmdline | grep sabayon-game=torcs) + if [ -n "$cmdline_torcs_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Torcs...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/torcs && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_nexuiz_exists=$(cat /proc/cmdline | grep sabayon-game=nexuiz) + if [ -n "$cmdline_nexuiz_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Nexuiz...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/nexuiz && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_savage_exists=$(cat /proc/cmdline | grep sabayon-game=savage) + if [ -n "$cmdline_savage_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Savage...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/savage && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_flightgear_exists=$(cat /proc/cmdline | grep sabayon-game=flightgear) + if [ -n "$cmdline_flightgear_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting FlightGear...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/fgfs && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + cmdline_secondlife_exists=$(cat /proc/cmdline | grep sabayon-game=secondlife) + if [ -n "$cmdline_secondlife_exists" ]; then + # Start Coldwar + echo -en "\E[33;36m * \E[0m \E[01;32m Starting Second Life...\E[0m" + + prepare_fluxbox_locked_autologin + + # Set Freevo to Fluxbox startup + echo >> /home/sabayonuser/.fluxbox/init + echo "session.screen0.rootCommand: fbsetbg -l & /scripts/rungame.sh /usr/games/bin/secondlife-bin && sudo halt -fp" >> /home/sabayonuser/.fluxbox/init + + echo -e "\E[01;32mDone \E[0m" + fi + + + fi + + # At this point + echo -en "\E[33;36m * \E[0m \E[01;32m Waiting for OpenGL Configurator to finish... \E[0m" + while [ -e "/etc/x-setup-configuration-running" ] + do + # waiting... + sleep 1 + done + echo -e "Done" + + + # Strict HARDWARE detection and configuration + + pc_is_macbook=$(lshal | grep -i macbook) + if [ -n "$pc_is_macbook" ]; then + # launch pommed + if [ -e "/etc/init.d/pommed" ]; then + /etc/init.d/pommed start &> /dev/null + rc-update add pommed default &> /dev/null + fi + fi + + + # MOVED HERE TO AVOID RACE CONDITIONS ON WRITING /etc/profile.env variables + # Check if LANG is forced by cmdline + cmdline_lang_exist=$(cat /proc/cmdline | grep -i "lang=") + cmdline_locale_exist=$(cat /proc/cmdline | grep -i "locale=") + + if [ -n "$cmdline_locale_exist" ]; then + cmdline_lang_exist="locale-setup" + fi + + if [ -n "$cmdline_lang_exist" ];then + + if [ "$cmdline_lang_exist" == "locale-setup" ]; then + # detect keymap + for word in `cat /proc/cmdline` ; do + case $word in + locale=*) + lang_toset=$(echo $word | cut -d "=" -f 2) + ;; + esac + done + + else + + for word in `cat /proc/cmdline` ; do + case $word in + LANG=*) + lang_toset=$(echo $word | cut -d "=" -f 2) + ;; + lang=*) + lang_toset=$(echo $word | cut -d "=" -f 2) + ;; + esac + done + + fi + + # Setup Language + /sbin/language-setup $lang_toset &> /dev/null + + fi + + # Start Accel Manager or Configure XGL/AIGLX + start_acceleration_manager + +} + +stop() { + + persistent_exists=$(cat /proc/cmdline | grep "xsistence") + if [ -n "$persistent_exists" ]; then + sleep 5 + sync + # umount every possible mounted filesystem (/home and /mnt/xsistence) + mnt_xsistence_img_mounted=$(cat /etc/mtab | grep "/mnt/xsistence/sabayon-xsistence.ext3") + if [ -n "$mnt_xsistence_img_mounted" ]; then + mozilla_cache=$(find /home/*/.mozilla -nowarn -name Cache) + for word in $mozilla_cache; do + rm -rf $word + done + sync + sleep 1 + umount -l -r -d /mnt/xsistence/sabayon-xsistence.ext3 + fi + mnt_xsistence_mounted=$(cat /etc/mtab | grep "/mnt/xsistence") + if [ -n "$mnt_xsistence_mounted" ]; then + umount -l -r /mnt/xsistence + fi + # redundant... + home_mounted=$(cat /etc/mtab | grep "/home ") + if [ -n "$home_mounted" ]; then + umount -l -r -d /home + fi + + fi + + +} + diff --git a/app-misc/sabayonlive-tools/files/1.7.2/x-setup-configuration b/app-misc/sabayonlive-tools/files/1.7.2/x-setup-configuration new file mode 100644 index 000000000..bcd908efc --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/x-setup-configuration @@ -0,0 +1,303 @@ +#!/bin/bash + +configure_opengl() { + +if [ -n "$cmdline_opengl_exists" ]; then + for word in `cat /proc/cmdline` ; do + case $word in + opengl=*) + opengl_toset=$(echo $word | cut -d "=" -f 2) + nice -20 opengl-activator $opengl_toset + ;; + esac + done +else + get_video_cards &> /dev/null + get_current_gl=$(opengl-activator show) + + if [ "$get_current_gl" != "$GLTYPE" ]; then + if [ -z "$cmdline_noproprietary_exist" ]; then + source /etc/profile + nice -20 opengl-activator $GLTYPE + source /etc/profile + else + if [ -z "$cmdline_cdroot_exist" ]; then + source /etc/profile + nice -20 opengl-activator xorg-x11 + source /etc/profile + fi + fi + fi +fi + +} + +runtime_linking_proprietary_drivers() { + + current_arch=$(uname -m) + if [ "$current_arch" == "x86_64" ]; then + ld_arch="elf_x86_64" + elif [ "$current_arch" == "i686" ]; then + ld_arch="elf_i386" + fi + lspci_vga=$(lspci | grep ' VGA ') + mount -t tmpfs none /lib/modules/$(uname -r)/video + if [ -n "`echo $lspci_vga | grep -i nvidia`" ]; then + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/nvidia.ko /lib/nvidia/nvidia.o /lib/nvidia/nvidia.mod.o + elif [ -n "`echo $lspci_vga | grep -i ati`" ]; then + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/fglrx.ko /lib/fglrx/fglrx.o /lib/fglrx/fglrx.mod.o + elif [ -n "`echo $lspci_vga | grep -i unknown`" ]; then + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/nvidia.ko /lib/nvidia/nvidia.o /lib/nvidia/nvidia.mod.o + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/fglrx.ko /lib/fglrx/fglrx.o /lib/fglrx/fglrx.mod.o + elif [ -z "$lspci_vga" ]; then + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/nvidia.ko /lib/nvidia/nvidia.o /lib/nvidia/nvidia.mod.o + ld -m $ld_arch -r -o /lib/modules/$(uname -r)/video/fglrx.ko /lib/fglrx/fglrx.o /lib/fglrx/fglrx.mod.o + fi + + +} + +configure_video_settings() { + + # X.Org must be started and now I'm checking if user wants to start the server at 640x480 + if [ -n "$cmdline_legacy_exist" ]; then + mv -f /etc/X11/xorg.conf.legacy /etc/X11/xorg.conf + /sbin/gpu-configuration &> /dev/null + #echo -e "\E[33;36m * \E[0m \E[01;32m Starting up X.Org in (- Legacy -) mode ::\E[0m" + #echo -e "\t Display Configuration: 800x600 at 60Hz" + else + + # Probe for Hsync, Vsync, Modes and in case the user has specified + # something else on the command line, it will be overwritten + + if [ -e "/usr/sbin/ddcxinfo-knoppix" ] && [ -z "$cmdline_noddc_exist" ] && [ -n "$cmdline_cdroot_exist" ]; then + + # hsync + hsync=$(/usr/sbin/ddcxinfo-knoppix -hsync) + if [ "$hsync" != "0-0" ]; then + # ok, we got it + sed -i '/HorizSync/ s/#//' /etc/X11/xorg.conf + sed -i '/HorizSync/ s/.*/ HorizSync '$hsync'/' /etc/X11/xorg.conf + fi + + # vsync + vsync=$(/usr/sbin/ddcxinfo-knoppix -vsync) + if [ "$vsync" != "0-0" ]; then + # ok, we got it + sed -i '/VertRefresh/ s/#//' /etc/X11/xorg.conf + sed -i '/VertRefresh/ s/.*/ VertRefresh '$vsync'/' /etc/X11/xorg.conf + fi + + # Modes? + if [ "$vsync" != "0-0" ] && [ "$hsync" != "0-0" ]; then + modes=$(/usr/sbin/ddcxinfo-knoppix -modes) + if [ -n "$modes" ]; then + sed -i '/Modes/ s/#//' /etc/X11/xorg.conf + sed -i "/Modes/ s/.*/ $modes/" /etc/X11/xorg.conf + fi + fi + + fi + + if [ -n "$cmdline_resolution_forced" ];then + # change resolution in X.Org + for word in `cat /proc/cmdline` ; do + case $word in + res=*) + resolution_toset=$(echo $word | cut -d "=" -f 2) + if [ "$resolution_toset" == "800x600" ]; then + sed -i '/Modes.*".*"/ s/"1024x768"/"'$resolution_toset'"/' /etc/X11/xorg.conf + elif [ "$resolution_toset" == "640x480" ]; then + sed -i '/Modes.*".*"/ s/"1024x768"/"'$resolution_toset'"/' /etc/X11/xorg.conf + else + sed -i '/Modes.*".*"/ s/.*/ Modes "'$resolution_toset'" "1024x768" "800x600"/' /etc/X11/xorg.conf + fi + #echo -e "\E[33;36m * \E[0m\E[01;32m Setting X.Org to $resolution_toset if it's available \E[0m" + sed -i '/Modes/ s/#//' /etc/X11/xorg.conf + ;; + esac + done + fi + + # Check if refresh= is forced by cmdline + if [ -n "$cmdline_refresh_exist" ];then + # change VertRefresh in X.Org + for word in `cat /proc/cmdline` ; do + case $word in + refresh=*) + sed -i '/VertRefresh/ s/#//' /etc/X11/xorg.conf + refresh_toset=$(echo $word | cut -d "=" -f 2) + sed -i '/VertRefresh/ s/.*/ VertRefresh '$refresh_toset'/' /etc/X11/xorg.conf + #echo -e "\E[33;36m * \E[0m\E[01;32m Setting VertRefresh to $refresh_toset Hz \E[0m" + ;; + esac + done + fi + + # Check if refresh= is forced by cmdline + if [ -n "$cmdline_hsync_exist" ];then + # change HorizSync in X.Org + for word in `cat /proc/cmdline` ; do + case $word in + hsync=*) + sed -i '/HorizSync/ s/#//' /etc/X11/xorg.conf + hsync_toset=$(echo $word | cut -d "=" -f 2) + sed -i '/HorizSync/ s/.*/ HorizSync '$hsync_toset'/' /etc/X11/xorg.conf + #echo -e "\E[33;36m * \E[0m\E[01;32m Setting HorizSync to $hsync_toset Hz \E[0m" + ;; + esac + done + fi + + + if [ -z "$cmdline_onlyvesa_exist" ]; then + #echo -e "\E[33;36m * \E[0m\E[01;32m Video Card:`lspci | grep VGA | cut -d: -f3` \E[0m" + /sbin/gpu-configuration &> /dev/null + fi + + fi + +} + +configure_input_devices() { + + # Detect ALPS Touchpad + + #Option "MaxSpeed" "0.7" + #Option "MinSpeed" "0.18" + #Option "AccelFactor" "0.08" + #Option "TopEdge" "120" + #Option "LeftEdge" "120" + #Option "BottomEdge" "830" + #Option "RightEdge" "650" + #Option "FingerLow" "25" + #Option "FingerHigh" "30" + if [ -e "/proc/bus/input/devices" ]; then + + # Enable Synaptic/ALPS touchpad + if [ -n "$alps_touchpad_exist" ] || [ -n "$synaptics_touchpad_exist" ]; then + sed -i '/InputDevice.*Synaptics1/ s/#//' /etc/X11/xorg.conf + fi + + + if [ -n "$alps_touchpad_exist" ]; then + sed -i '/MaxSpeed/ s/#//' /etc/X11/xorg.conf + sed -i '/MinSpeed/ s/#//' /etc/X11/xorg.conf + sed -i '/AccelFactor/ s/#//' /etc/X11/xorg.conf + sed -i '/TopEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/LeftEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/BottomEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/RightEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/FingerLow/ s/#//' /etc/X11/xorg.conf + sed -i '/FingerHigh/ s/#//' /etc/X11/xorg.conf + fi + + # Configure touchpad for MacBook + if [ -n "$is_macbook" ]; then + sed -i '/MaxSpeed/ s/#//' /etc/X11/xorg.conf + sed -i '/MinSpeed/ s/#//' /etc/X11/xorg.conf + sed -i '/AccelFactor/ s/#//' /etc/X11/xorg.conf + sed -i '/TopEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/LeftEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/BottomEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/RightEdge/ s/#//' /etc/X11/xorg.conf + sed -i '/FingerLow/ s/#//' /etc/X11/xorg.conf + sed -i '/FingerHigh/ s/#//' /etc/X11/xorg.conf + sed -i '/MaxTapTime/ s/#//' /etc/X11/xorg.conf + sed -i '/MaxTapMove/ s/#//' /etc/X11/xorg.conf + sed -i '/MaxDoubleTapTime/ s/#//' /etc/X11/xorg.conf + sed -i '/VertScrollDelta/ s/#//' /etc/X11/xorg.conf + sed -i '/HorizScrollDelta/ s/#//' /etc/X11/xorg.conf + sed -i '/TapButton2/ s/#//' /etc/X11/xorg.conf + sed -i '/TapButton3/ s/#//' /etc/X11/xorg.conf + sed -i '/VertTwoFingerScroll/ s/#//' /etc/X11/xorg.conf + # now change values + sed -i '/LeftEdge/ s/"LeftEdge".*".*"/"LeftEdge"\t\t"100"/' /etc/X11/xorg.conf + sed -i '/RightEdge/ s/"RightEdge".*".*"/"RightEdge"\t\t"1120"/' /etc/X11/xorg.conf + sed -i '/TopEdge/ s/"TopEdge".*".*"/"TopEdge"\t\t"50"/' /etc/X11/xorg.conf + sed -i '/BottomEdge/ s/"BottomEdge".*".*"/"BottomEdge"\t\t"310"/' /etc/X11/xorg.conf + sed -i '/FingerLow/ s/"FingerLow".*".*"/"FingerLow"\t\t"25"/' /etc/X11/xorg.conf + sed -i '/FingerHigh/ s/"FingerHigh".*".*"/"FingerHigh"\t\t"30"/' /etc/X11/xorg.conf + sed -i '/MaxTapTime/ s/"MaxTapTime".*".*"/"MaxTapTime"\t\t"180"/' /etc/X11/xorg.conf + sed -i '/MaxTapMove/ s/"MaxTapMove".*".*"/"MaxTapMove"\t\t"220"/' /etc/X11/xorg.conf + sed -i '/MaxDoubleTapTime/ s/"MaxDoubleTapTime".*".*"/"MaxDoubleTapTime"\t\t"180"/' /etc/X11/xorg.conf + sed -i '/VertScrollDelta/ s/"VertScrollDelta".*".*"/"VertScrollDelta"\t\t"20"/' /etc/X11/xorg.conf + sed -i '/HorizScrollDelta/ s/"HorizScrollDelta".*".*"/"HorizScrollDelta"\t\t"50"/' /etc/X11/xorg.conf + sed -i '/MinSpeed/ s/"MinSpeed".*".*"/"MinSpeed"\t\t"0.79"/' /etc/X11/xorg.conf + sed -i '/MaxSpeed/ s/"MaxSpeed".*".*"/"MaxSpeed"\t\t"0.88"/' /etc/X11/xorg.conf + sed -i '/AccelFactor/ s/"AccelFactor".*".*"/"AccelFactor"\t\t"0.0015"/' /etc/X11/xorg.conf + fi + + else + echo "warning: /proc/bus/input/devices does not exist, cannot detect ALPS TouchPads" + fi + + + # Detect Wacom Devices + + if [ -n "`cat /proc/bus/input/devices | grep Wacom`" ]; then + + # #InputDevice "wacom1" "SendCoreEvents" + sed -i '/InputDevice.*wacom1/ s/#//' /etc/X11/xorg.conf + sed -i '/InputDevice.*wacom2/ s/#//' /etc/X11/xorg.conf + sed -i '/InputDevice.*wacom3/ s/#//' /etc/X11/xorg.conf + + fi + + # Detect Macintosh - Enabling Apple Key + if [ -n "$is_mactel" ]; then + sed -i '/XkbOptions/ s/#//' /etc/X11/xorg.conf + fi + + # Detect VMware + # disable for now, since vmmouse is broken on some virtual machines + #if [ -n "$is_vmware" ]; then + # sed -i '/Driver.*mouse/ s/mouse/vmmouse/' /etc/X11/xorg.conf + #fi + +} + + # create seed + rm -f /etc/x-setup-configuration-running + touch /etc/x-setup-configuration-running + + # get livecd functions + source /sbin/livecd-functions.sh + + # Variables + cmdline_onlyvesa_exist=$(cat /proc/cmdline | grep onlyvesa) + cmdline_opengl_exists=$(cat /proc/cmdline | grep "opengl=") + cmdline_legacy_exist=$(cat /proc/cmdline | grep legacy) + cmdline_resolution_forced=$(cat /proc/cmdline | grep "res=") + cmdline_refresh_exist=$(cat /proc/cmdline | grep refresh=) + cmdline_hsync_exist=$(cat /proc/cmdline | grep hsync=) + cmdline_noddc_exist=$(cat /proc/cmdline | grep "noddc") + cmdline_cdroot_exist=$(cat /proc/cmdline | grep " cdroot") + is_mactel=$(dmidecode | grep "Vendor" | grep "Apple Computer") + is_macbook=$(dmidecode | grep "Product Name" | grep -i "MacBook") + is_vmware=$(dmidecode | grep "Product Name" | grep -i "vmware") + alps_touchpad_exist=$(cat /proc/bus/input/devices | grep -i alps) + synaptics_touchpad_exist=$(cat /proc/bus/input/devices | grep -i synaptics) + + # Prepare Video Cards Proprietary Drivers + if [ -n "$cmdline_cdroot_exist" ]; then + runtime_linking_proprietary_drivers + fi + + # Prepare OpenGL + if [ -z "$cmdline_onlyvesa_exist" ]; then + configure_opengl + fi + + if [ -n "$cmdline_cdroot_exist" ]; then + # Configure Video Card Driver + configure_video_settings + else + /sbin/gpu-configuration &> /dev/null + fi + + # Now we can configure X Input drivers + configure_input_devices + + # delete seed + rm -f /etc/x-setup-configuration-running diff --git a/app-misc/sabayonlive-tools/files/1.7.2/x-setup-init.d b/app-misc/sabayonlive-tools/files/1.7.2/x-setup-init.d new file mode 100755 index 000000000..b05e4940b --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/x-setup-init.d @@ -0,0 +1,42 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Copyright 2006 SabayonLinux +# Distributed under the terms of the GNU General Public License v2 + +depend() { + before hostname + before xdm + after internetkiosk +} + + +start() { + + is_live=$(cat /proc/cmdline | grep cdroot) + if [ -n "$is_live" ]; then + ebegin "Configuring GPU Hardware Acceleration and Input devices" + start-stop-daemon --start --background --exec /usr/sbin/x-setup-configuration -- + eend 0 + else + ebegin "Configuring GPU Hardware Acceleration and Input devices" + if [ -e /first_time_run ] || [ ! -e /etc/gpu-detector.conf ]; then + # store config file + lspci | grep ' VGA ' > /etc/gpu-detector.conf + eend 0 + return 0 + fi + + lspci_vga=$(lspci | grep ' VGA ') + if [ "$lspci_vga" != "`cat /etc/gpu-detector.conf`" ]; then + if [ -e "/sbin/aiglx-setup" ]; then + /sbin/aiglx-setup disable &> /dev/null + fi + if [ -e "/sbin/xgl-setup" ]; then + /sbin/xgl-setup disable &> /dev/null + fi + /usr/sbin/x-setup-configuration &> /dev/null + lspci | grep ' VGA ' > /etc/gpu-detector.conf + fi + eend 0 + fi +} diff --git a/app-misc/sabayonlive-tools/files/1.7.2/xorg.conf b/app-misc/sabayonlive-tools/files/1.7.2/xorg.conf new file mode 100644 index 000000000..25ec9377c --- /dev/null +++ b/app-misc/sabayonlive-tools/files/1.7.2/xorg.conf @@ -0,0 +1,159 @@ +Section "Module" + Load "i2c" + Load "ddc" + Load "synaptics" + Load "vbe" +# Load "dri" +EndSection + + +Section "ServerFlags" + Option "AllowMouseOpenFail" "true" +EndSection + +Section "InputDevice" + Identifier "Synaptics1" + Driver "synaptics" + Option "SendCoreEvents" "true" + Option "Device" "/dev/psaux" + Option "Protocol" "auto-dev" + Option "HorizScrollDelta" "0" + Option "SHMConfig" "on" + # For ALPS/MacBook TouchPads + #Option "MaxSpeed" "0.7" + #Option "MinSpeed" "0.18" + #Option "AccelFactor" "0.08" + #Option "TopEdge" "120" + #Option "LeftEdge" "120" + #Option "BottomEdge" "830" + #Option "RightEdge" "650" + #Option "FingerLow" "25" + #Option "FingerHigh" "30" + # MacBook touchpad + #Option "MaxTapTime" "180" + #Option "MaxTapMove" "220" + #Option "MaxDoubleTapTime" "180" + #Option "VertScrollDelta" "20" + #Option "HorizScrollDelta" "50" + #Option "TapButton2" "3" + #Option "TapButton3" "2" + #Option "VertTwoFingerScroll" "1" + + # Do you keep moving the mouse while typing? Try this trick. + #synclient TouchpadOff=1 disable your synaptics touchpad + #synclient TouchpadOff=0 enable your synaptics touchpad +EndSection + + +Section "InputDevice" + + Identifier "Keyboard1" + Driver "kbd" + + Option "AutoRepeat" "500 5" + Option "XkbModel" "pc105" + Option "XkbLayout" "us" + Option "XkbRules" "xorg" + # Macintosh keyboard + #Option "XkbOptions" "lv3:rwin_switch" + +EndSection + + +# ********************************************************************** +# Core Pointer's InputDevice section +# ********************************************************************** + +Section "InputDevice" + Identifier "Mouse1" + Driver "mouse" + Option "Device" "/dev/psaux" +EndSection + +# ********************************************************************** +# Monitor section +# ********************************************************************** + +# Any number of monitor sections may be present + +Section "Monitor" + Identifier "Generic Monitor" + VertRefresh 43 - 60 + HorizSync 28 - 80 +EndSection + +# ********************************************************************** +# Graphics device section +# ********************************************************************** + +# Any number of graphics device sections may be present + +Section "Device" + Identifier "VESA" + Driver "vesa" # do not remove vesa + #Option "RenderAccel" "on" + #Option "XAANoOffscreenPixmaps" + #Option "BusType" "PCI" + #Option "ColorTiling" "on" + #Option "EnablePageFlip" "on" +EndSection + + +# ********************************************************************** +# Screen sections. +# ********************************************************************** + +Section "Screen" + +# The Identifier, Device and Monitor lines must be present + + Identifier "Screen 1" + Device "VESA" + Monitor "Generic Monitor" + #Option "AddARGBGLXVisuals" "true" + +# The favoured Depth and/or Bpp may be specified here + + DefaultDepth 24 + + SubSection "Display" + Depth 8 + ViewPort 0 0 + #Modes "1024x768" "800x600" "640x480" + EndSubsection + + SubSection "Display" + Depth 16 + ViewPort 0 0 + #Modes "1024x768" "800x600" "640x480" + EndSubsection + + SubSection "Display" + Depth 24 + ViewPort 0 0 + #Modes "1024x768" "800x600" "640x480" + EndSubsection + + +EndSection + + +Section "ServerLayout" +# The Identifier line must be present + + Identifier "Main Layout" + Screen 0 "Screen 1" + InputDevice "Mouse1" "CorePointer" + #InputDevice "Synaptics1" "SendCoreEvents" + InputDevice "Keyboard1" "CoreKeyboard" + +EndSection + +Section "DRI" + Mode 0666 +EndSection + +Section "Extensions" + #Option "Composite" "Enable" +EndSection + diff --git a/app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.6.2 b/app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.6.2 deleted file mode 100644 index e69de29bb..000000000 diff --git a/app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.6.1 b/app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.7.2 similarity index 100% rename from app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.6.1 rename to app-misc/sabayonlive-tools/files/digest-sabayonlive-tools-1.7.2 diff --git a/app-misc/sabayonlive-tools/sabayonlive-tools-1.6.1.ebuild b/app-misc/sabayonlive-tools/sabayonlive-tools-1.6.1.ebuild deleted file mode 100644 index d41d086fe..000000000 --- a/app-misc/sabayonlive-tools/sabayonlive-tools-1.6.1.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2006 SabayonLinux -# Distributed under the terms of the GNU General Public License v2 - -inherit eutils - -DESCRIPTION="SabayonLinux Live tools for autoconfiguration of the system" -HOMEPAGE="http://www.sabayonlinux.org" - -SLOT="0" -LICENSE="GPL-2" -KEYWORDS="amd64 x86" -IUSE="opengl professional_edition" - -RDEPEND="dev-util/dialog - sys-apps/pciutils - sys-apps/gawk - !professiona_edition? ( app-admin/eselect-opengl ) - !app-misc/livecd-tools - !professional_edition? ( x11-misc/desktop-acceleration-helpers ) - " -DEPEND="${RDEPEND}" - -src_unpack() { - cd ${WORKDIR} - cp ${FILESDIR}/${PV}/livecd-functions.sh . -p - cp ${FILESDIR}/${PV}/net-setup . -p - cp ${FILESDIR}/${PV}/x-setup-init.d . -p - cp ${FILESDIR}/${PV}/x-setup-configuration . -p - cp ${FILESDIR}/${PV}/xorg.conf . -p - cp ${FILESDIR}/${PV}/bashlogin . -p - cp ${FILESDIR}/${PV}/opengl-activator . -p -} - -src_install() { - - cd ${WORKDIR} - - if use opengl; then - dosbin x-setup-configuration - newinitd x-setup-init.d x-setup - fi - - dosbin net-setup - into / - dosbin livecd-functions.sh - dobin bashlogin - exeinto /usr/bin - doexe opengl-activator - - insinto /etc/X11 - doins xorg.conf - -} diff --git a/app-misc/sabayonlive-tools/sabayonlive-tools-1.6.2.ebuild b/app-misc/sabayonlive-tools/sabayonlive-tools-1.7.2.ebuild similarity index 94% rename from app-misc/sabayonlive-tools/sabayonlive-tools-1.6.2.ebuild rename to app-misc/sabayonlive-tools/sabayonlive-tools-1.7.2.ebuild index d4a70358a..960fd211e 100644 --- a/app-misc/sabayonlive-tools/sabayonlive-tools-1.6.2.ebuild +++ b/app-misc/sabayonlive-tools/sabayonlive-tools-1.7.2.ebuild @@ -29,6 +29,7 @@ src_unpack() { cp ${FILESDIR}/${PV}/xorg.conf . -p cp ${FILESDIR}/${PV}/bashlogin . -p cp ${FILESDIR}/${PV}/opengl-activator . -p + cp ${FILESDIR}/${PV}/sabayonlive . -p } src_install() { @@ -50,4 +51,6 @@ src_install() { insinto /etc/X11 doins xorg.conf + newinitd sabayonlive + }