svn commit: r240165 - head/usr.sbin/pc-sysinstall/backend

2012-09-06 Thread Josh Paetzel
Author: jpaetzel
Date: Thu Sep  6 14:59:53 2012
New Revision: 240165
URL: http://svn.freebsd.org/changeset/base/240165

Log:
  Add TRIM support, enabled by default.
  Fix a bug installing components from a localPath.
  Allow autosizing of any partition, not just the last partition.
  Adjust how ZFS is laid out to work with Boot Environments.
  
  Submitted by: kmoore
  Obtained from:PC-BSD
  MFC after:3 days

Modified:
  head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
  head/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh
  head/usr.sbin/pc-sysinstall/backend/functions-disk.sh
  head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh
  head/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh
  head/usr.sbin/pc-sysinstall/backend/functions-newfs.sh

Modified: head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh   Thu Sep  6 
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh   Thu Sep  6 
14:59:53 2012(r240165)
@@ -164,6 +164,38 @@ gen_glabel_name()
   export VAL=${NAME}${NUM} 
 };
 
+# Function to determine the size we can safely use when 0 is specified
+get_autosize()
+{
+  # Disk tag to look for
+  dTag=$1
+
+  # Total MB Avail
+  get_disk_mediasize_mb $2
+  local _aSize=$VAL
+
+  while read line
+  do
+# Check for data on this slice
+echo $line | grep -q ^${_dTag}-part= 2/dev/null
+if [ $? -ne 0 ] ; then continue ; fi
+
+get_value_from_string ${line}
+STRING=$VAL
+
+# Get the size of this partition
+SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2` 
+if [ $SIZE -eq 0 ] ; then continue ; fi
+_aSize=`expr $_aSize - $SIZE`
+  done ${CFGF}
+
+  # Pad the size a bit
+  _aSize=`expr $_aSize - 2`
+
+  VAL=$_aSize
+  export VAL
+};
+
 # Function to setup partitions using gpart
 setup_gpart_partitions()
 {
@@ -173,6 +205,7 @@ setup_gpart_partitions()
   local _sNum=$4
   local _pType=$5
   FOUNDPARTS=1
+  USEDAUTOSIZE=0
 
   # Lets read in the config file now and setup our partitions
   if [ ${_pType} = gpt ] ; then
@@ -245,7 +278,15 @@ setup_gpart_partitions()
 
   if [ $SIZE = 0 ]
   then
-SOUT=
+   if [ $USEDAUTOSIZE -eq 1 ] ; then
+  exit_err ERROR: You can not have two partitions with a size of 0 
specified!
+   fi
+case ${_pType} in
+ gpt|apm) get_autosize ${_dTag} $_pDisk ;;
+   *) get_autosize ${_dTag} $_wSlice ;;
+esac
+SOUT=-s ${VAL}M
+   USEDAUTOSIZE=1
   else
 SOUT=-s ${SIZE}M
   fi

Modified: head/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-cleanup.shThu Sep  6 
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-cleanup.shThu Sep  6 
14:59:53 2012(r240165)
@@ -49,7 +49,7 @@ zfs_cleanup_unmount()
   # Creating a dedicated /boot partition
   cat ${FSMNT}/boot/loader.conf 2/dev/null | grep -q 
vfs.root.mountfrom= 2/dev/null
   if [ $? -ne 0 ] ; then
-echo vfs.root.mountfrom=\zfs:${ZPOOLNAME}\  
${FSMNT}/boot/loader.conf
+echo vfs.root.mountfrom=\zfs:${ZPOOLNAME}/ROOT/default\  
${FSMNT}/boot/loader.conf
   fi
   export FOUNDZFSROOT=${ZPOOLNAME}
 fi
@@ -195,8 +195,8 @@ setup_fstab()
 if [ $? -eq 0 ] ; then
   if [ ${PARTFS} = ZFS ] ; then
 ROOTFSTYPE=zfs
-XPOOLNAME=$(get_zpool_name ${PARTDEV})
-ROOTFS=${ZPOOLNAME}
+ZPOOLNAME=$(get_zpool_name ${PARTDEV})
+ROOTFS=${ZPOOLNAME}/ROOT/default
   else
 ROOTFS=${DEVICE}
 ROOTFSTYPE=ufs

Modified: head/usr.sbin/pc-sysinstall/backend/functions-disk.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-disk.sh   Thu Sep  6 
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-disk.sh   Thu Sep  6 
14:59:53 2012(r240165)
@@ -224,6 +224,15 @@ get_disk_mediasize()
   export VAL=${mediasize}
 };
 
+# Function which returns a target disks mediasize in megabytes
+get_disk_mediasize_mb()
+{
+  mediasize=`diskinfo -v ${1} | grep # mediasize in bytes | tr -s ' ' | cut 
-f 2`
+  mediasize=`expr $mediasize / 1024`
+  mediasize=`expr $mediasize / 1024`
+  export VAL=${mediasize}
+};
+
 # Function to delete all gparts before starting an install
 delete_all_gpart()
 {

Modified: head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh  Thu Sep 
 6 13:54:01 2012(r240164)
+++ 

Re: svn commit: r240165 - head/usr.sbin/pc-sysinstall/backend

2012-09-06 Thread Bryan Drewery
On 9/6/2012 9:59 AM, Josh Paetzel wrote:
 Author: jpaetzel
 Date: Thu Sep  6 14:59:53 2012
 New Revision: 240165
 URL: http://svn.freebsd.org/changeset/base/240165
 
 Log:
   Add TRIM support, enabled by default.
   Fix a bug installing components from a localPath.
   Allow autosizing of any partition, not just the last partition.
   Adjust how ZFS is laid out to work with Boot Environments.
   
   Submitted by:   kmoore
   Obtained from:  PC-BSD
   MFC after:  3 days

Thanks! The (UFS) TRIM and BE stuff is great to have here.

Bryan
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org


Re: svn commit: r240165 - head/usr.sbin/pc-sysinstall/backend

2012-09-06 Thread Jos Backus
On Thu, Sep 6, 2012 at 7:59 AM, Josh Paetzel jpaet...@freebsd.org wrote:

 Modified: head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh

 ==
 --- head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh   Thu Sep  6
 13:54:01 2012(r240164)
 +++ head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh   Thu Sep  6
 14:59:53 2012(r240165)
 ...
FOUNDPARTS=1
 +  USEDAUTOSIZE=0

# Lets read in the config file now and setup our partitions
if [ ${_pType} = gpt ] ; then
 @@ -245,7 +278,15 @@ setup_gpart_partitions()

if [ $SIZE = 0 ]
then
 -SOUT=
 +   if [ $USEDAUTOSIZE -eq 1 ] ; then


Style question: if $USEDAUTOSIZE is treated as a boolean value, why not use
`true' and `false' instead of `1' and `0'? No need to make shell code look
like C code. That way one can write:

if $USEDAUTOSIZE; then

Jos
-- 
Jos Backus
jos at catnook.com
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org