Print this page
Kayak uses sudo with variable set (and sudoers set)
        
*** 26,35 ****
--- 26,45 ----
  #
  
  # We have to build as root to manipulate ZFS datasets
  export ROOT_OK=yes
  
+ if [[ "$UID" != 0 && ! -z $KAYAK_SUDO_BUILD ]]; then
+        # Run sudo BEFORE functions.sh eats the parameters.
+        # Installing OmniOS-on-demand should create an entry in /etc/sudoers.d/
+        # to cover running this script under sudo.
+        echo "Running again under sudo, currently UID = $UID, EUID = $EUID."
+        export OLDUSER=`whoami`
+        export KAYAK_SUDO_BUILD
+        exec sudo -n ./build.sh $@
+ fi
+ 
  # Load support functions
  . ../../lib/functions.sh
  
  if [[ "$UID" != "0" ]]; then
      logerr "--- This script needs to be run as root."
*** 101,110 ****
--- 111,126 ----
  prep_build
  logmsg "Now building $PKG"
  build_server
  make_package kayak.mog
  clean_up
+ # Do extra cleaning up if we got run under sudo from ourselves.
+ if [[ -z `echo $RPATH | grep http://` ]]; then
+        OLDUSER=`ls -ltd $RPATH | awk '{print $3}'`
+        logmsg "--- Re-chowning $RPATH to user $OLDUSER"
+        chown -R $OLDUSER $RPATH
+ fi
  
  PKG=system/install/kayak-kernel
  SUMMARY="Kayak - network installer (kernel, miniroot and pxegrub)"
  PKGE=$(url_encode $PKG)
  PKGD=${PKGE//%/_}
*** 113,120 ****
--- 129,142 ----
  
  logmsg "Now building $PKG"
  build_miniroot
  make_package
  clean_up
+ # Do extra cleaning up if we got run under sudo from ourselves.
+ if [[ -z `echo $RPATH | grep http://` ]]; then
+        OLDUSER=`ls -ltd $RPATH | awk '{print $3}'`
+        logmsg "--- Re-chowning $RPATH to user $OLDUSER"
+        chown -R $OLDUSER $RPATH
+ fi
  
  # Vim hints
  # vim:ts=4:sw=4:et: