summaryrefslogtreecommitdiff
path: root/package/emulator-qemu-x86.install.macos
diff options
context:
space:
mode:
Diffstat (limited to 'package/emulator-qemu-x86.install.macos')
-rwxr-xr-xpackage/emulator-qemu-x86.install.macos133
1 files changed, 133 insertions, 0 deletions
diff --git a/package/emulator-qemu-x86.install.macos b/package/emulator-qemu-x86.install.macos
new file mode 100755
index 0000000000..7059ad03bc
--- /dev/null
+++ b/package/emulator-qemu-x86.install.macos
@@ -0,0 +1,133 @@
+#!/bin/sh -e
+
+TIZEN_SDK_INSTALL_PATH="`echo $INSTALLED_PATH`"
+OLD_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax`
+SYSCTL_FILE=sysctl.conf
+COCOASUDO_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/bin
+TIZEN_BIN_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-x.x/common/emulator/bin
+TIZEN_PLATFORM_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/platforms/tizen-x.x/common/emulator/etc
+TIZEN_TOOL_ETC_PATH=$TIZEN_SDK_INSTALL_PATH/tools/emulator/etc
+TMP_FILE=emulator-install.sh
+NEW_SHMMAXSIZE=83886080
+
+if [ -z "$TIZEN_SDK_INSTALL_PATH" ]
+then
+ echo "There is no TIZEN_SDK_PATH ENV" >> /tmp/emulator.log
+ # exit 2;
+fi
+
+function remove_tmp_file {
+ if [ -e "$TMP_FILE" ]
+ then
+ echo "delete $TMP_FILE"
+ rm -f "$TMP_FILE"
+ fi
+}
+
+function generate_tap_kext_cmd {
+ echo "cp -pR \"${TIZEN_PLATFORM_ETC_PATH}/emulator-ifup.sh\" /etc/" >> "$TMP_FILE"
+ echo "mkdir -p /Library/Extensions" >> "$TMP_FILE"
+ echo "cp -pR \"${TIZEN_TOOL_ETC_PATH}/tap.kext\" /Library/Extensions" >> "$TMP_FILE"
+ echo "rm -rf \"${TIZEN_TOOL_ETC_PATH}/tap.kext\"" >> "$TMP_FILE"
+ echo "chown -R root:wheel /Library/Extensions/tap.kext" >> "$TMP_FILE"
+ echo "mkdir -p /Library/LaunchDaemons" >> "$TMP_FILE"
+ echo "cp /Library/Extensions/tap.kext/Contents/net.sf.tuntaposx.tap.plist /Library/LaunchDaemons" >> "$TMP_FILE"
+ echo "kextutil -nt /Library/Extensions/tap.kext" >> "$TMP_FILE"
+ echo "/sbin/kextload /Library/Extensions/tap.kext" >> "$TMP_FILE"
+}
+
+function generate_sudoer_cmd {
+ cat << 'EOF' >> $TMP_FILE
+FILE=/etc/sudoers
+BACKFILE=/etc/sudoers.bak
+TMPFILE=/etc/sudoers.tmp
+MESSAGE="# Tizen SDK generated the following script. Do not modify."
+LINE1="User_Alias QEMUERS="
+LINE2="Cmnd_Alias QEMU=/etc/emulator-ifup.sh, /etc/emulator-ifdown.sh"
+LINE3="QEMUERS ALL=(ALL) NOPASSWD: QEMU"
+count=0
+
+if [[ "$USER" == "" ]]
+then
+ echo "user is not set. aborting..."
+ exit 1
+fi
+
+while read line
+do
+ echo $line
+ count=$((count+1))
+ if [[ $line == $LINE1* ]]
+ then
+ echo "find original script"
+ NAMES=`echo $line | cut -d = -f2`
+ if [[ "$NAMES"x == ""x ]]
+ then
+ cp $FILE $BACKFILE
+ # in case of blank user
+ eval sed -e "$count"c\"$line $USER\" $FILE > $TMPFILE
+ exit 0
+ fi
+ for i in $(echo $NAMES | tr "," "\n")
+ do
+ if [[ "$i" == "$USER" ]]
+ then
+ echo "already added the same user"
+ exit 0
+ fi
+ done
+ cp $FILE $BACKFILE
+ # new user is added with comma behind the original users.
+ eval sed -e "$count"c\"$line, $USER\" $FILE > $TMPFILE
+ mv $TMPFILE $FILE
+ exit 0
+ fi
+done < $FILE
+
+cp $FILE $BACKFILE
+echo "do not find qemu sudoer. add it"
+echo "$MESSAGE" >> $FILE
+echo "$LINE1$USER" >> $FILE
+echo "$LINE2" >> $FILE
+echo "$LINE3" >> $FILE
+exit 0
+EOF
+}
+
+function prepare {
+ TAP_ZIP_FILE="$TIZEN_TOOL_ETC_PATH/tap.zip"
+ TAP_KEXT="$TIZEN_TOOL_ETC_PATH/tap.kext"
+ USER=`id -un`
+ echo "create $TMP_FILE"
+ echo "#!/bin/sh" > "$TMP_FILE"
+ echo "TIZEN_SDK_INSTALL_PATH=$TIZEN_SDK_INSTALL_PATH" >> "$TMP_FILE"
+ echo "USER=$USER" >> "$TMP_FILE"
+}
+
+function generate {
+ generate_tap_kext_cmd;
+ generate_sudoer_cmd;
+}
+
+function execute {
+ /bin/chmod +x "$TMP_FILE"
+ "$COCOASUDO_PATH/cocoasudo" --prompt="Please enter your password to install Tizen Emulator." sh -x "$TMP_FILE"
+}
+
+function cleanup {
+ remove_tmp_file;
+}
+
+prepare;
+generate;
+execute;
+cleanup;
+
+CURRENT_SHMMAXSIZE=`sysctl -n kern.sysv.shmmax`
+
+if [ ! $OLD_SHMMAXSIZE -eq $CURRENT_SHMMAXSIZE ]
+then
+ echo 'need reboot'
+ exit 99
+fi
+