Print this page
Use PREBUILT_ILLUMOS's svccfg-native to stop lockups post-5896/5897
        
*** 54,64 ****
  if [[ ! -d $ROOTDIR ]]; then
    zfs create -o compression=off $BASE/root || fail "zfs create failed"
  fi
  SVCCFG_DTD=${ROOTDIR}/usr/share/lib/xml/dtd/service_bundle.dtd.1
  SVCCFG_REPOSITORY=${ROOTDIR}/etc/svc/repository.db
! SVCCFG=/usr/sbin/svccfg
  export WORKDIR ROOTDIR SVCCFG_DTD SVCCFG_REPOSITORY SVCCFG
  
  # This was uber-helpful
  # http://alexeremin.blogspot.com/2008/12/preparing-small-miniroot-with-zfs-and.html
  
--- 54,73 ----
  if [[ ! -d $ROOTDIR ]]; then
    zfs create -o compression=off $BASE/root || fail "zfs create failed"
  fi
  SVCCFG_DTD=${ROOTDIR}/usr/share/lib/xml/dtd/service_bundle.dtd.1
  SVCCFG_REPOSITORY=${ROOTDIR}/etc/svc/repository.db
! #SVCCFG=/usr/sbin/svccfg
! if [[ -f ${PREBUILT_ILLUMOS}/usr/src/cmd/svc/svccfg/svccfg-native ]]; then
!         SVCCFG=${PREBUILT_ILLUMOS}/usr/src/cmd/svc/svccfg/svccfg-native
! else
!         echo "WARNING -- Not using 'native' svccfg, may hang on build."
!         echo "       We recommend a pre-built illumos's svccfg-native."
!         echo "       Set PREBUILT_ILLUMOS in your environment to point"
!         echo "       to a built illumos-omnios repository."
!         SVCCFG=/usr/sbin/svccfg
! fi
  export WORKDIR ROOTDIR SVCCFG_DTD SVCCFG_REPOSITORY SVCCFG
  
  # This was uber-helpful
  # http://alexeremin.blogspot.com/2008/12/preparing-small-miniroot-with-zfs-and.html
  
*** 270,287 ****
          ${SVCCFG} import ${ROOTDIR}/lib/svc/manifest/milestone/sysconfig.xml
          for xml in $UNNEEDED_MANIFESTS; do
                  rm -f ${ROOTDIR}/lib/svc/manifest/$xml && echo " --- tossing $xml"
          done
          echo " --- initial manifest import"
!         ${ROOTDIR}/lib/svc/method/manifest-import -f ${ROOTDIR}/etc/svc/repository.db \
                  -d ${ROOTDIR}/lib/svc/manifest
  
          ${SVCCFG} -s 'system/boot-archive' setprop 'start/exec=:true'
          ${SVCCFG} -s 'system/manifest-import' setprop 'start/exec=:true'
          ${SVCCFG} -s "system/intrd:default" setprop "general/enabled=false"
          ${SVCCFG} -s "system/initial-boot" setprop "start/timeout_seconds=600"
!         echo " --- nuetering the manifest import"
          echo "#!/bin/ksh" > ${ROOTDIR}/lib/svc/method/manifest-import
          echo "exit 0" >> ${ROOTDIR}/lib/svc/method/manifest-import
          chmod 555 ${ROOTDIR}/lib/svc/method/manifest-import
          chkpt cull
          ;;
--- 279,303 ----
          ${SVCCFG} import ${ROOTDIR}/lib/svc/manifest/milestone/sysconfig.xml
          for xml in $UNNEEDED_MANIFESTS; do
                  rm -f ${ROOTDIR}/lib/svc/manifest/$xml && echo " --- tossing $xml"
          done
          echo " --- initial manifest import"
!         # See if we can transform manifest-import to use the 'native' svccfg.
!         sed 's/\/usr\/sbin\/svccfg/\$SVCCFG/g' \
!             < ${ROOTDIR}/lib/svc/method/manifest-import \
!             > /tmp/manifest-import.$$
!         chmod 0755 /tmp/manifest-import.$$
!         export SVCCFG
!         /tmp/manifest-import.$$ -f ${ROOTDIR}/etc/svc/repository.db \
                  -d ${ROOTDIR}/lib/svc/manifest
+         /bin/rm -f /tmp/manifest-import.$$
  
          ${SVCCFG} -s 'system/boot-archive' setprop 'start/exec=:true'
          ${SVCCFG} -s 'system/manifest-import' setprop 'start/exec=:true'
          ${SVCCFG} -s "system/intrd:default" setprop "general/enabled=false"
          ${SVCCFG} -s "system/initial-boot" setprop "start/timeout_seconds=600"
!         echo " --- neutering the manifest import"
          echo "#!/bin/ksh" > ${ROOTDIR}/lib/svc/method/manifest-import
          echo "exit 0" >> ${ROOTDIR}/lib/svc/method/manifest-import
          chmod 555 ${ROOTDIR}/lib/svc/method/manifest-import
          chkpt cull
          ;;