3 ####################################
6 # Ardour/Mixbus bundle installer
9 ###################################
11 MAJOR_VERSION="%REPLACE_MAJOR_VERSION%"
13 PGM_NAME="%REPLACE_PGM%"
14 PGM_VENDOR="%REPLACE_VENDOR%"
15 PGM_EXEC_FILE="%REPLACE_EXE%${MAJOR_VERSION}"
19 if test -z "$INSTALL_DEST_BASE"; then
20 INSTALL_DEST_BASE="/opt"
26 USER_BIN_DIR="/usr/local/bin"
28 PGM_NAME_LOWER=$(echo $PGM_NAME | tr '[:upper:]' '[:lower:]')
32 #### Global Variables ####
35 ########################
36 # Function Definitions
37 ########################
39 VaildateYesNoQuestion ()
46 until test "y" = $INPUT_OK;
49 read -p "$1 [y/n]: " USER_INPUT
52 if [ ! -z $USER_INPUT ];
54 if [ "Y" = $USER_INPUT -o "y" = $USER_INPUT -o "n" = $USER_INPUT -o "N" = $USER_INPUT ];
61 echo $USER_INPUT | tr '[:upper:]' '[:lower:]'
68 # Determine which software install app to use and then install requested package
71 if which yum > /dev/null;
73 ${SUPER} yum -y install $1
79 echo "!!! ERROR !!! yum install failed for an unknown reason."
80 echo "Please install package $1 after this installer completes."
84 elif which apt-get > /dev/null;
86 ${SUPER} apt-get -y install $1
92 echo "!!! ERROR !!! apt-get install failed for an unknown reason."
93 echo "Please install package $1 after this installer completes."
99 echo "!!! ERROR !!! - Not able to detect which software install tool to use (yum or apt-get)."
100 echo "Please install package $1 using the system software install tool."
109 ########################################################################
111 ########################################################################
114 # If you double click a script, some systems don't get the PWD correct.
115 # Force it to be correct
116 PKG_PATH=$(dirname "$(readlink -f "$0")")
120 echo "Welcome to the ${PGM_NAME} installer"
122 echo "${PGM_NAME} will be installed for user ${USER_NAME} in ${INSTALL_DEST_BASE}"
124 #############################
125 # Check for root privileges
126 #############################
131 if [ "$(id -u)" != "0" ]; then
133 if ! which sudo > /dev/null;
136 echo "Sudo installed failed, attempting to install using su"
137 echo "Please enter root password below"
140 if ! su -s $THE_SHELL -c "./.stage2.run";
145 echo "This installer requires root privileges. It is currently not"
146 echo "running as root AND an attempt to use su failed."
148 echo "Please correct this by installing and configuring sudo or running"
149 echo "the installer as root (su -s $THE_SHELL -c)."
151 read -p "Press ENTER to exit installer:" BLAH
156 sudo -k # make sudo forget about cached credentials
162 echo "Attempting to install using su"
163 echo "Please enter root password below"
166 if ! su -s $THE_SHELL -c "./.stage2.run";
171 echo "This installer requires root privileges. It is currently not"
172 echo "running as root AND an attempt to use both sudo and su failed."
174 echo "Please correct this by installing and configuring sudo or running"
175 echo "the installer as root (su -s $THE_SHELL -c)."
177 read -p "Press ENTER to exit installer:" BLAH
184 # The quoting reqired for the su sanityCheck method does not work when used without
185 # su. Using sh -c in the normal case gets around that, but is a bit of a hack.
188 NORM_USER="su -l $USER_NAME -s $THE_SHELL -c"
191 ###############################
192 # Check for install destination
193 ###############################
195 if test -n "$CALL_MKDIR"; then
196 ${SUPER} mkdir -p "$INSTALL_DEST_BASE"
199 if [ ! -d ${INSTALL_DEST_BASE} ];
202 echo "!!! ERROR !!! - Installation location ${INSTALL_DEST_BASE} does not exist!"
203 echo "Installation will not complete."
205 read -p "Press ENTER to exit installer:" BLAH
210 ############################
211 # Determine processor type
212 ############################
215 i[3456789]86|x86|i86pc)
216 echo "Architecture is x86"
220 echo "Architecture is x86_64"
225 echo "!!! ERROR !!! - Unknown architecture `uname -m`"
227 read -p "Press ENTER to exit installer:" BLAH
232 #############################
233 # Determine C11 stdlibc++ ABI
234 #############################
236 if %REPLACE_GCC5%; then
237 # Ardour was compiled with gcc5, warn on gcc4 systems
238 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/gcc-glibmm-abi-check --gcc5 > /dev/null"; then
240 echo "WARNING: GCC4/5 libstdc++ ABI Mismatch"
242 echo "Ardour was compiled with gcc5, your system uses an older version of the"
243 echo "standard c++ library. Plugins on your system may not load or plugin-UIs"
244 echo "may cause crashes."
246 ANSWER=$(VaildateYesNoQuestion "Continue anyway?")
247 if test "n" = $ANSWER; then
252 # Ardour was compiled with gcc4, warn on gcc5 systems
253 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/gcc-glibmm-abi-check --gcc4 > /dev/null"; then
255 echo "WARNING: GCC4/5 libstdc++ ABI Mismatch"
257 echo "Ardour was compiled with gcc4, your system uses a newer version of the"
258 echo "standard c++ library. Plugins on your system may not load or plugin-UIs"
259 echo "may cause crashes."
261 ANSWER=$(VaildateYesNoQuestion "Continue anyway?")
262 if test "n" = $ANSWER; then
272 # We have to check the current folder and the INSTALL_DEST_BASE just
273 # in case they are on different devices
274 echo "Checking for required disk space"
276 if [ ! -e .${PGM_NAME}_${ARCH}-*.size ]; then
278 echo "!!! ERROR !!! Can't locate .size file for ${ARCH} bundle."
279 echo "This package is broken or does not support ${ARCH}."
281 read -p "Press ENTER to exit installer:" BLAH
284 REQUIRED_BYTES=$(cat .${PGM_NAME}_${ARCH}-*.size)
286 #Installer needs 2x the space since the bundle is unpacked locally and then copied
287 REQUIRED_BYTES=$(($REQUIRED_BYTES + $REQUIRED_BYTES))
289 #Check space in current folder
290 FREE_BYTES=$(df -P -B 1 "${PKG_PATH}" | grep / | awk '{print $4}')
292 if [ ${FREE_BYTES} -le ${REQUIRED_BYTES} ] ; then
294 echo "!!! ERROR !!! - Insufficient disk space in ${PKG_PATH}"
295 echo "Install requires ${REQUIRED_BYTES} bytes and"
296 echo "there is only ${FREE_BYTES} bytes of free space"
298 read -p "Press ENTER to exit installer:" BLAH
302 #Check space in INSTALL_DEST_BASE
303 FREE_BYTES=$(df -P -B 1 ${INSTALL_DEST_BASE} | grep / | awk '{print $4}')
305 if [ ${FREE_BYTES} -le ${REQUIRED_BYTES} ] ; then
307 echo "!!! ERROR !!! - Insufficient disk space in ${INSTALL_DEST_BASE}"
308 echo "Install requires ${REQUIRED_BYTES} bytes and"
309 echo "there is only ${FREE_BYTES} bytes of free space"
311 read -p "Press ENTER to exit installer:" BLAH
316 FILESYSTEM_TYPE=$(df -P -T "${PKG_PATH}" | grep / | awk '{print $2}')
317 echo "Bundle is on ${FILESYSTEM_TYPE} filesystem"
319 #####################
321 #####################
323 # untar the correct bundle for us to install
324 echo "Unpacking bundle for $ARCH"
326 if [ ! -e ${PGM_NAME}_${ARCH}-*.tar.bz2 ]; then
328 echo "!!! ERROR !!! Can't locate ${ARCH} bundle file."
330 read -p "Press ENTER to exit installer:" BLAH
334 if ! tar -xjf ${PGM_NAME}_${ARCH}-*.tar.bz2; then
336 echo "!!! ERROR !!! Can't unpack ${ARCH} bundle file."
338 read -p "Press ENTER to exit installer:" BLAH
341 echo "Bundle unpacked"
344 BUNDLE_DIR=$(basename `find -maxdepth 1 -type d -name "${PGM_NAME}_${ARCH}-*"`)
347 #######################
348 # Check for xdg utils
349 #######################
351 #load the file that contains the translated names of the users directories
352 if [ -e /home/${USER_NAME}/.config/user-dirs.dirs ]; then
353 . /home/${USER_NAME}/.config/user-dirs.dirs
356 if [ "$(id -u)" != "0" ]; then
357 USER_DESKTOP_DIR=${XDG_DESKTOP_DIR:-$HOME/Desktop}
359 #running as root with su makes this more difficult
360 DESKTOP_FOLDER=$(echo ${XDG_DESKTOP_DIR:-$HOME/Desktop} | awk -F/ '{print $NF}')
361 USER_DESKTOP_DIR="/home/${USER_NAME}/${DESKTOP_FOLDER}"
364 XDG_MENU_VER=$(xdg-desktop-menu --version 2> /dev/null)
365 if [ -z "$XDG_MENU_VER" ];
367 echo "System does not have xdg-desktop-menu installed"
371 XDG_ICON_VER=$(xdg-icon-resource --version 2> /dev/null)
372 if [ -z "$XDG_ICON_VER" ];
374 echo "System does not have xdg-icon-resource installed"
378 #################################################
379 # Check if system libs are OK (libc, etc)
380 #################################################
383 echo "Checking system libs to see if they are compatible with ${PGM_NAME}."
387 LD_PATH=`pwd`/${BUNDLE_DIR}/lib
390 LDD_RESULT=$(LD_LIBRARY_PATH=${LD_PATH} ldd ${BUNDLE_DIR}/bin/${PGM_NAME_LOWER}-* 2>&1 > /dev/null | grep -v "no version information")
392 if [ -n "$LDD_RESULT" ];
399 LIB_FILES=$(find ${BUNDLE_DIR}/lib -name "*.so")
401 for path in $LIB_FILES
403 LDD_RESULT=$(LD_LIBRARY_PATH=${LD_PATH} ldd $path 2>&1 > /dev/null | grep -v "no version information")
404 if [ -n "$LDD_RESULT" ];
411 if test "T" = $LIB_ERROR;
414 echo "!!! ERROR !!! - Missing library detected!"
415 echo "This system does not have the correct libs to run ${PGM_NAME}."
416 echo "Installation will not complete. Please use a compatible distro."
418 read -p "Press ENTER to exit installer:" BLAH
422 ################################
423 # Setup derived variables
424 ################################
425 PGM_VERSION=$(echo ${BUNDLE_DIR} | cut -d- -f2)
426 PGM_BUILDTYPE=$(echo ${BUNDLE_DIR} | cut -d- -f3)
428 if [ -z ${PGM_BUILDTYPE} ];
430 PGM_FULL_NAME="${PGM_NAME}-${PGM_VERSION}"
431 ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}" #no dash between name and version since dash seperates vendor from program
432 MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}.desktop" #no dash between name and version since dash seperates vendor from program
433 DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}.desktop"
435 PGM_FULL_NAME="${PGM_NAME}-${PGM_VERSION}-${PGM_BUILDTYPE}"
436 ICON_NAME="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}" #no dash between name and version since dash seperates vendor from program
437 MENU_FILE="${PGM_VENDOR}-${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop" #no dash between name and version since dash seperates vendor from program
438 DESKTOP_LINK_FILE="${PGM_NAME}_${PGM_VERSION}_${PGM_BUILDTYPE}.desktop"
441 PGM_EXEC_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/${PGM_EXEC_FILE}"
442 ICON_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/share/icons"
443 MENU_FILE_PATH="${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/share"
445 ################################
446 # Install bundle and Menu/Link
447 ################################
449 # uninstall any older versions
450 UNINSTALLERS=$(find ${INSTALL_DEST_BASE} -maxdepth 1 -type f -name "${PGM_NAME}*.uninstall.sh")
451 if [ ! -z "$UNINSTALLERS" ];
453 for i in $UNINSTALLERS; do
455 echo "Found existing ${PGM_NAME} installation."
457 ANSWER=$(VaildateYesNoQuestion "Do you want to run the uninstaller ${i} ?")
459 if test "y" = $ANSWER;
462 echo "Running uninstaller $i"
474 echo "Installing ${PGM_NAME} ${PGM_VERSION} in ${INSTALL_DEST_BASE}"
477 # Copy the new version in the install directory
478 ${SUPER} mkdir ${INSTALL_DEST_BASE}/${PGM_FULL_NAME}
479 ${SUPER} cp -Rf ${BUNDLE_DIR}/* ${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/
481 # write the desktop/menu file
482 echo "[Desktop Entry]" > /tmp/${MENU_FILE}
483 echo "Encoding=UTF-8" >> /tmp/${MENU_FILE}
484 echo "Version=1.0" >> /tmp/${MENU_FILE}
485 echo "Type=Application" >> /tmp/${MENU_FILE}
486 echo "Terminal=false" >> /tmp/${MENU_FILE}
487 echo "Exec=${PGM_EXEC_PATH}" >> /tmp/${MENU_FILE}
488 if [ -z ${PGM_BUILDTYPE} ];
490 echo "Name=${PGM_NAME}-${PGM_VERSION}" >> /tmp/${MENU_FILE}
492 echo "Name=${PGM_NAME}-${PGM_VERSION}-${PGM_BUILDTYPE}" >> /tmp/${MENU_FILE}
494 echo "Icon=${ICON_NAME}" >> /tmp/${MENU_FILE}
495 echo "Comment=Digital Audio Workstation" >> /tmp/${MENU_FILE}
496 echo "Categories=AudioVideo;AudioEditing;Audio;Recorder;" >> /tmp/${MENU_FILE}
498 chmod ugo+rx /tmp/${MENU_FILE}
499 ${SUPER} mv /tmp/${MENU_FILE} ${MENU_FILE_PATH}/.
501 # install the Menu, Link, and Icon(s)
502 if [ "T" = ${HAS_XDG} ];
504 echo "Adding ${PGM_NAME} to the applications menu"
505 ${SUPER} xdg-icon-resource install --context apps --size 16 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_16px.png ${ICON_NAME}
506 ${SUPER} xdg-icon-resource install --context apps --size 22 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_22px.png ${ICON_NAME}
507 ${SUPER} xdg-icon-resource install --context apps --size 32 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_32px.png ${ICON_NAME}
508 ${SUPER} xdg-icon-resource install --context apps --size 48 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_48px.png ${ICON_NAME}
509 ${SUPER} xdg-icon-resource install --context apps --size 256 ${ICON_PATH}/${PGM_NAME_LOWER}_icon_256px.png ${ICON_NAME}
511 if [ -e ${ICON_PATH}/${PGM_NAME_LOWER}_icon.svg -a -d /usr/share/icons/hicolor/scalable/apps ];
513 ${SUPER} cp -f ${ICON_PATH}/${PGM_NAME_LOWER}_icon.svg /usr/share/icons/hicolor/scalable/apps/${ICON_NAME}.svg
516 ${SUPER} xdg-desktop-menu install ${MENU_FILE_PATH}/${MENU_FILE}
517 ${SUPER} xdg-desktop-menu forceupdate --mode system # Some systems need an extra kick
520 echo "Creating a desktop link for ${PGM_NAME} in ${USER_DESKTOP_DIR}"
521 cp ${MENU_FILE_PATH}/${MENU_FILE} ${USER_DESKTOP_DIR}/${DESKTOP_LINK_FILE}
522 chmod ugo+rwx ${USER_DESKTOP_DIR}/${DESKTOP_LINK_FILE}
525 echo "Creating a desktop link for ${PGM_NAME} in ${USER_DESKTOP_DIR}"
526 cp ${MENU_FILE_PATH}/${MENU_FILE} ${USER_DESKTOP_DIR}/${DESKTOP_LINK_FILE}
527 chmod ugo+rwx ${USER_DESKTOP_DIR}/${DESKTOP_LINK_FILE}
531 echo "Copying uninstall script to ${INSTALL_DEST_BASE}"
534 ${SUPER} cp -f ${BUNDLE_DIR}/bin/*.uninstall.sh ${INSTALL_DEST_BASE}/.
536 # Create link to the program in user bin
539 echo "Creating link ${PGM_NAME}${MAJOR_VERSION} in ${USER_BIN_DIR}"
542 if [ -d "${USER_BIN_DIR}" ]; then
543 if [ -e "${USER_BIN_DIR}/${PGM_NAME}${MAJOR_VERSION}" ]; then
544 ${SUPER} rm -f ${USER_BIN_DIR}/${PGM_NAME}${MAJOR_VERSION}
548 ${SUPER} ln -sf ${PGM_EXEC_PATH} ${PGM_NAME}${MAJOR_VERSION}
552 echo "Can not create link because ${USER_BIN_DIR} does not exist"
555 ###########################
556 # Check Jack and qjackctl
557 ###########################
560 echo "Checking to see if Jack is installed"
565 if which jackd > /dev/null; then
567 echo "Jack already present"
568 elif which jackdbus > /dev/null; then
570 echo "jackdbus was found but not jackd. Jack version compatibility check cannot be performed."
575 echo "The program Jack is missing from this system. Jack is a required component of $PGM_NAME."
578 ANSWER=$(VaildateYesNoQuestion "Install jack using system software repository?")
580 if test "y" = $ANSWER;
582 echo "Attempting to install Jack"
583 SystemInstall "jackd"
588 read -p "Press ENTER to continue:" BLAH
595 # Check to see if Jack is new enough to operate correctly.
597 if [ "t" = ${JACK_INSTALLED} ];
600 JACK_VER_STRING=$(jackd --version | grep -e "jackd.*protocol")
601 JACK_NAME=$(echo $JACK_VER_STRING | awk '{print $1}')
602 JACK_VERSION=$(echo $JACK_VER_STRING | awk '{print $3}')
603 JACK_VERSION_MAJOR=$(echo $JACK_VERSION | awk 'BEGIN{FS="."}{print $1}')
604 JACK_VERSION_MIDDLE=$(echo $JACK_VERSION | awk 'BEGIN{FS="."}{print $2}')
605 JACK_VERSION_MINOR=$(echo $JACK_VERSION | awk 'BEGIN{FS="."}{print $3}')
607 if [ "jackd" = ${JACK_NAME} ];
609 if [ ${JACK_VERSION_MAJOR} -eq 0 ];
611 if [ ${JACK_VERSION_MIDDLE} -eq 121 ];
613 if [ ${JACK_VERSION_MINOR} -ge 3 ];
617 elif [ ${JACK_VERSION_MIDDLE} -gt 121 ];
621 elif [ ${JACK_VERSION_MAJOR} -gt 0 ];
625 elif [ "jackdmp" = ${JACK_NAME} ];
627 if [ ${JACK_VERSION_MAJOR} -eq 1 ];
629 if [ ${JACK_VERSION_MIDDLE} -eq 9 ];
631 if [ ${JACK_VERSION_MINOR} -ge 8 ];
635 elif [ ${JACK_VERSION_MIDDLE} -gt 9 ];
639 elif [ ${JACK_VERSION_MAJOR} -gt 1 ];
645 if [ "t" = ${JACK_VERSION_OK} ];
648 echo "Jack Version Check OK (${JACK_VER_STRING})"
652 echo "!!! WARNING !!! - The version of Jack on this system is too old!"
653 echo "Using an old version of Jack is not recommended. Please update"
654 echo "Jack for best results."
656 echo "System Jack version:"
657 echo " ${JACK_VER_STRING}"
659 echo "Recommended minimum versions:"
660 echo " Jack1 - 0.121.3"
661 echo " Jack2 - 1.9.8"
663 read -p "Press ENTER to continue:" BLAH
667 if ! which qjackctl > /dev/null;
670 echo "The program QjackCtl is missing from this system."
671 echo "QjackCtl is an extremely useful tool for any system that runs JACK applications like $PGM_NAME."
672 echo "We recommend that you install it."
675 ANSWER=$(VaildateYesNoQuestion "Install QjackCtl using system software repository?")
677 if test "y" = $ANSWER;
679 echo "Attempting to install QjackCtl"
680 SystemInstall "qjackctl"
685 read -p "Press ENTER to continue:" BLAH
691 ########################
693 ########################
695 USER_GROUP_ADJUSTED="f"
697 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -a > /dev/null";
700 echo "System failed the quick sanity check... Looking for the cause"
702 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -rt > /dev/null";
705 echo "System does not allow realtime for the current user... Looking for a solution"
707 if ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -hasaudiogroup > /dev/null";
709 if ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -memberaudiogroup > /dev/null 2>&1";
711 ## This is an odd case. We have an audio group and are a member.
713 echo "!!! WARNING !!! - The current user can not execute realtime processes."
714 echo "This will adversely affect audio latency."
715 echo "This system has an audio group and the user is a member. If jack was"
716 echo "just installed, a simple log out/in may fix this."
718 echo "For best results, please correct this on your system."
719 echo "(Hint: check /etc/security/limits.conf or /etc/security/limits.d/)"
721 read -p "Press ENTER to continue:" BLAH
723 # Not a member of an audio group. Try to fix it.
725 if ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -hasgroup audio > /dev/null && find /etc/security -type f -name "*.conf" | xargs grep -q "^@audio.*rtprio" ";
727 # add user to audio group
729 echo "Adding user ${USER_NAME} to the audio group."
730 echo "This should allow you to run realtime tasks. Please re-login for this change to take affect."
732 read -p "Press ENTER to continue:" BLAH
734 if ${SUPER} usermod -a -G audio ${USER_NAME};
736 USER_GROUP_ADJUSTED="t"
739 echo "!!! ERROR !!! - Not able to add user to the audio group (usermod failed)!"
741 echo "Please add yourself to the audio group and re-login"
743 read -p "Press ENTER to continue:" BLAH
746 elif ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -hasgroup jackuser > /dev/null && find /etc/security -type f -name "*.conf" | xargs grep -q "^@jackuser.*rtprio" ";
748 # add user to jackuser group
750 echo "Adding user ${USER_NAME} to the jackuser group."
751 echo "This should allow you to run realtime tasks. Please re-login for this change to take affect."
753 read -p "Press ENTER to continue:" BLAH
755 if ${SUPER} usermod -a -G jackuser ${USER_NAME};
757 USER_GROUP_ADJUSTED="t"
760 echo "!!! ERROR !!! - Not able to add user to the jackuser group."
762 echo "Please add yourself to the audio group and re-login"
764 read -p "Press ENTER to continue:" BLAH
771 # No audio group found on this system!
773 echo "!!! WARNING !!! - The system does not seem to have an audio group (audio or jackuser)."
775 echo "We will not attempt to fix this. Please configure your system to allow"
776 echo "non-root users to execute realtime tasks."
778 read -p "Press ENTER to continue:" BLAH
782 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -freqscaling > /dev/null";
785 echo "!!! WARNING !!! - Your system seems to use frequency scaling."
786 echo "This can have a serious impact on audio latency."
787 echo "For best results turn it off, e.g. by chosing the 'performance' governor."
789 read -p "Press ENTER to continue:" BLAH
792 if [ "f" = $USER_GROUP_ADJUSTED ];
794 if ! ${NORM_USER} "${INSTALL_DEST_BASE}/${PGM_FULL_NAME}/bin/sanityCheck -memlock > /dev/null";
797 echo "!!! WARNING !!! - You are not allowed to lock memory."
799 echo "We will not attempt to fix this. Please configure your system to allow"
800 echo "non-root users to execute lock memory."
802 read -p "Press ENTER to continue:" BLAH
808 ########################
810 ########################
814 rm -rf ${BUNDLE_DIR}/
817 echo "!!! Install Complete !!!"
819 if [ "t" = $USER_GROUP_ADJUSTED ];
821 echo "You will need to logout and then login again for all changes to be complete"
825 read -p "Press ENTER to exit installer:" BLAH