7193528 Move sg3_utils to the Userland consolidation
authorRich Burridge <rich.burridge@oracle.com>
Fri, 24 Aug 2012 11:46:52 -0700
changeset 956 8dfd8bd38819
parent 955 d73530a1bcea
child 957 255465c5756f
7193528 Move sg3_utils to the Userland consolidation
components/sg3_utils/Makefile
components/sg3_utils/files/sg3_utils-exec_attr
components/sg3_utils/files/sg3_utils-prof_attr
components/sg3_utils/patches/rescan-scsi-bus-fixes.patch
components/sg3_utils/patches/sg3_utils-solaris-build.patch
components/sg3_utils/sg3_utils.license
components/sg3_utils/sg3_utils.p5m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/Makefile	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,79 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		sg3_utils
+COMPONENT_VERSION=	1.28
+COMPONENT_PROJECT_URL=	http://sg.danny.cz/sg/sg3_utils.html
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tgz
+COMPONENT_ARCHIVE_HASH= \
+    sha256:da8bd627a6246b709e2a0321fa9d5ca09a33354a1ae40c74cd37efb69b9f8118
+COMPONENT_ARCHIVE_URL=	http://sg.danny.cz/sg/p/$(COMPONENT_ARCHIVE)
+
+COMPONENT_ARCHIVE_1 =	rescan-scsi-bus.sh-1.35
+COMPONENT_ARCHIVE_HASH_1 = \
+    sha256:324630d65ef85480f3fc57e8c1648dba2c79fa1927e26e6dfd1b64c7b8aba0b1
+COMPONENT_ARCHIVE_URL_1 = http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh-1.35
+
+COMPONENT_POST_UNPACK_ACTION = \
+	$(CP) $(COMPONENT_DIR)/rescan-scsi-bus.sh-1.35 \
+		$(COMPONENT_SRC)/rescan-scsi-bus.sh
+
+include ../../make-rules/prep.mk
+include ../../make-rules/configure.mk
+include ../../make-rules/ips.mk
+
+CPPFLAGS += -I$(COMPONENT_DIR)/$(COMPONENT_SRC)/include
+
+CONFIGURE_OPTIONS +=	--disable-static
+CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
+
+# Don't use rpath!
+COMPONENT_POST_CONFIGURE_ACTION = \
+	(cd $(BUILD_DIR_32) ; \
+	$(GSED) -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool ; \
+	$(GSED) -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool)
+
+# Move the section 8 man pages into section 1m.
+COMPONENT_POST_INSTALL_ACTION = \
+	for f in $(PROTOUSRSHAREMANDIR)/man8/*; do \
+		mv $$f $${f%.8}.1m; \
+	done ; \
+	$(MV) $(PROTOUSRSHAREMANDIR)/man8 $(PROTOUSRSHAREMANDIR)/man1m
+
+PKG_PROTO_DIRS +=	$(COMPONENT_DIR)/files
+
+# common targets
+build:          $(BUILD_32)
+
+install:        $(INSTALL_32)
+
+test:           $(TEST_32)
+
+BUILD_PKG_DEPENDENCIES =        $(BUILD_TOOLS)
+
+include ../../make-rules/depend.mk
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/files/sg3_utils-exec_attr	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,41 @@
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_format:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_get_config:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_get_lba_status:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_ident:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_inq:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_logs:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_luns:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_modes:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_opcodes:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_read_block_limits:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_read_buffer:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_read_long:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_readcap:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_reassign:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_requests:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_rmsn:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_rtpg:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_safte:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_sat_identify:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_sat_phy_event:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Info:solaris:cmd:::/usr/sbin/sg_vpd:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_sync:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_persist:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_prevent:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_raw:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_rdac:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_reassign:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_sat_set_features:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_senddiag:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_ses:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_start:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_stpg:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_sync:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_turs:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_verify:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_wr_mode:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_write_buffer:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_write_long:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_write_same:euid=0;privs=file_dac_read,file_dac_write,sys_devices
+SCSI Device Management:solaris:cmd:::/usr/sbin/sg_unmap:euid=0;privs=file_dac_read,file_dac_write,sys_devices
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/files/sg3_utils-prof_attr	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,2 @@
+SCSI Device Info:::Inquiry, read device information
+SCSI Device Management:::Manage, modify device status or data:profiles=SCSI Device Info
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/patches/rescan-scsi-bus-fixes.patch	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,259 @@
+From 38842b5eafcd85bc91d96e2b2d0b99ea8864d907 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Thu, 14 Jan 2010 12:50:05 +0100
+Subject: [PATCH 1/5] netapp - fixes in doreportlun
+
+---
+ rescan-scsi-bus.sh |   64 ++++++++++++++++++++++++++++++++++------------------
+ 1 files changed, 42 insertions(+), 22 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index af1f843..8d52e39 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -371,38 +371,58 @@ dolunscan()
+ # Perform report lun scan
+ doreportlun()
+ {
+-  lun=0
++  lun=
+   SCSISTR=
+-  devnr="$host $channel $id $lun"
+-  echo "Scanning for device $devnr ..."
+-  #printf "${yellow}OLD: $norm"
+-  testexist -q
+-  if test -z "$SCSISTR"; then
+-    # Device does not exist, try to add
+-    #printf "\r${green}NEW: $norm"
+-    if test -e /sys/class/scsi_host/host${host}/scan; then
+-      echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
+-    else
+-      echo "scsi add-single-device $devnr" > /proc/scsi/scsi
+-    fi
++  for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
++        if [ -d "$dev" ]; then
++                lun=${dev##*:}
++                break
++        else
++                continue
++        fi
++  done
++  #If not a single LUN is present then assign lun=0
++  if [ -z $lun ]; then
++    lun=0
++    devnr="$host $channel $id $lun"
++    echo "Scanning for device $devnr ..."
++    printf "${yellow}OLD: $norm"
+     testexist -1
+     if test -z "$SCSISTR"; then
+-      # Device not present
+-      printf "\r\x1b[A";
+-      lunsearch=
+-      return
++      # Device does not exist, try to add
++      printf "\r${green}NEW: $norm"
++      if test -e /sys/class/scsi_host/host${host}/scan; then
++        echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
++      else
++        echo "scsi add-single-device $devnr" > /proc/scsi/scsi
++      fi
++      testexist
++      if test -z "$SCSISTR"; then
++        # Device not present
++        printf "\r\x1b[A";
++        lunsearch=
++        return
++      fi
+     fi
+     #testonline
+   fi
+-  lunsearch=`getluns`
++  flag=0
++  lun_search="`getluns`"
++  # Set flag=1 if all the LUNs are removed
++  if [ "${#lun_search}" = "1" ]; then
++    flag=1
++  fi
+   lunremove=
+   # Check existing luns
+   for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
+     [ -d "$dev" ] || continue
+     lun=${dev##*:}
++    if [ "$flag" = "1" ]; then
++      lunremove="$lunremove $lun"
++    fi
+     newsearch=
+-    oldsearch="$lunsearch"
+-    for tmplun in $lunsearch; do
++    oldsearch="$lun_search"
++    for tmplun in $lun_search; do
+       if test $tmplun -eq $lun ; then
+ 	dolunscan
+       else
+@@ -413,10 +433,10 @@ doreportlun()
+ 	# Stale lun
+ 	lunremove="$lunremove $lun"
+     fi
+-    lunsearch="$newsearch"
++    lun_search="$newsearch"
+   done
+   # Add new ones and check stale ones
+-  for lun in $lunsearch $lunremove; do
++  for lun in $lun_search $lunremove; do
+     dolunscan
+   done
+ }
+-- 
+1.6.6.1
+
+
+From 0e94e0c27d575f18a57938b9d98dfe02d8c11eb9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Thu, 14 Jan 2010 12:50:59 +0100
+Subject: [PATCH 2/5] netapp - LIP is not required to do a scan on FC
+
+---
+ rescan-scsi-bus.sh |    3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index 8d52e39..13e9283 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -587,11 +587,10 @@ declare -i rmvd=0
+ for host in $hosts; do
+   echo -n "Scanning host $host "
+   if test -e /sys/class/fc_host/host$host ; then
+-    # It's pointless to do a target scan on FC
+     if test -n "$lipreset" ; then
+       echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
+-      echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+     fi
++    echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+     channelsearch=""
+     idsearch=""
+   fi
+-- 
+1.6.6.1
+
+
+From c3b67a28289bb010d141e172a184982c40e2fff2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Thu, 14 Jan 2010 12:51:31 +0100
+Subject: [PATCH 3/5] space before getluns call is required
+
+---
+ rescan-scsi-bus.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index 13e9283..26a9853 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -407,7 +407,7 @@ doreportlun()
+     #testonline
+   fi
+   flag=0
+-  lun_search="`getluns`"
++  lun_search=" `getluns`"
+   # Set flag=1 if all the LUNs are removed
+   if [ "${#lun_search}" = "1" ]; then
+     flag=1
+-- 
+1.6.6.1
+
+
+From 5c10b085e2e83f371eddee16937157b0e7f63d5b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Thu, 14 Jan 2010 15:15:34 +0100
+Subject: [PATCH 4/5] wait for device
+
+When a device reports "unit attention" state after calling sg_turs, then wait until the device comes online or a timeout is reached.
+---
+ rescan-scsi-bus.sh |    8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index 26a9853..23fba7d 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -195,8 +195,12 @@ testonline ()
+   if test ! -x /usr/bin/sg_turs; then return 0; fi
+   sgdevice
+   if test -z "$SGDEV"; then return 0; fi
+-  sg_turs /dev/$SGDEV >/dev/null 2>&1
+-  RC=$?
++  for t in 1 2 3 4 5; do
++    sg_turs /dev/$SGDEV >/dev/null 2>&1
++    RC=$?
++    [ $RC -ne 6 ] && break
++    sleep $t
++  done
+   # echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n"
+   if test $RC = 1; then return $RC; fi
+   # OK, device online, compare INQUIRY string
+-- 
+1.6.6.1
+
+
+From ab78298b801aa1afdbaa7091a9e4aecdf8d89d2c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Fri, 25 Jun 2010 11:23:28 +0200
+Subject: [PATCH 5/5] accept user specified channel list when scanning FC host
+
+Allow the user to specify channels to scan on FC host when trying to find
+a first LUN. Option --forcerescan is used for that and when it's not given
+it defaults to the old behaviour when it gets available channels from
+/sys/class/scsi_device
+---
+ rescan-scsi-bus.sh |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index 23fba7d..a7fd1f3 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -595,7 +595,7 @@ for host in $hosts; do
+       echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
+     fi
+     echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+-    channelsearch=""
++    [ -z $forcerescan ] && channelsearch=""
+     idsearch=""
+   fi
+   [ -n "$channelsearch" ] && echo -n "channels $channelsearch "
+-- 
+1.6.6.1
+
+From 857456759088a92cf9cd2dbfaa24b5bf9cb0829e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <[email protected]>
+Date: Wed, 22 Sep 2010 15:33:00 +0200
+Subject: [PATCH] issue scan command also for iSCSI
+
+iSCSI devices behave like FC ones, so they need to issue the scan command
+first to work when there is no LUN==0 mapped.
+---
+ rescan-scsi-bus.sh |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/rescan-scsi-bus.sh b/rescan-scsi-bus.sh
+index a7fd1f3..1b9ea7d 100644
+--- a/rescan-scsi-bus.sh
++++ b/rescan-scsi-bus.sh
+@@ -590,10 +590,11 @@ declare -i found=0
+ declare -i rmvd=0
+ for host in $hosts; do
+   echo -n "Scanning host $host "
+-  if test -e /sys/class/fc_host/host$host ; then
+-    if test -n "$lipreset" ; then
++  if test -e /sys/class/fc_host/host$host -o -e /sys/class/iscsi_host/host$host ; then
++    if test -e /sys/class/fc_host/host$host -a -n "$lipreset" ; then
+       echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
+     fi
++    # always do a scan on FC or iSCSI
+     echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+     [ -z $forcerescan ] && channelsearch=""
+     idsearch=""
+-- 
+1.7.4.4
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/patches/sg3_utils-solaris-build.patch	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,48 @@
+diff -urN sg3_utils-1.28/lib/Makefile.am sg3_utils-1.28.new/lib/Makefile.am
+--- sg3_utils-1.28/lib/Makefile.am	2011-03-08 15:16:10.684395224 +0800
++++ sg3_utils-1.28.new/lib/Makefile.am	2011-03-08 15:16:52.811149215 +0800
+@@ -133,7 +133,7 @@
+ endif
+ 
+ 
+-AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W
++AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -v
+ # AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -pedantic -std=c99
+ 
+ lib_LTLIBRARIES = libsgutils2.la
+diff -urN sg3_utils-1.28/lib/Makefile.in sg3_utils-1.28.new/lib/Makefile.in
+--- sg3_utils-1.28/lib/Makefile.in	2011-03-08 15:16:10.683842532 +0800
++++ sg3_utils-1.28.new/lib/Makefile.in	2011-03-08 15:16:39.931893403 +0800
+@@ -330,7 +330,7 @@
+ @OS_WIN32_MINGW_TRUE@	sg_pt_solaris.c \
+ @OS_WIN32_MINGW_TRUE@	getopt_long.c
+ 
+-AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W
++AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -v
+ # AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -pedantic -std=c99
+ lib_LTLIBRARIES = libsgutils2.la
+ libsgutils2_la_LDFLAGS = -version-info 2:0:0
+diff -urN sg3_utils-1.28/src/Makefile.am sg3_utils-1.28.new/src/Makefile.am
+--- sg3_utils-1.28/src/Makefile.am	2011-03-08 15:16:10.677707201 +0800
++++ sg3_utils-1.28.new/src/Makefile.am	2011-03-08 15:17:03.471143277 +0800
+@@ -119,7 +119,7 @@
+ endif
+ 
+ 
+-AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W
++AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -v
+ # AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -pedantic -std=c99
+ 
+ sg_dd_SOURCES =	sg_dd.c
+diff -urN sg3_utils-1.28/src/Makefile.in sg3_utils-1.28.new/src/Makefile.in
+--- sg3_utils-1.28/src/Makefile.in	2011-03-08 15:16:10.676305953 +0800
++++ sg3_utils-1.28.new/src/Makefile.in	2011-03-08 15:17:13.216078187 +0800
+@@ -584,7 +584,7 @@
+ target_alias = @target_alias@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W
++AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -v
+ # AM_CFLAGS = -I ../include -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -pedantic -std=c99
+ sg_dd_SOURCES = sg_dd.c
+ sg_dd_LDADD = ../lib/libsgutils2.la @os_libs@
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/sg3_utils.license	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,364 @@
+
+-----------------
+- sg3utils 1.28 -
+-----------------
+
+Copyright:
+
+This software is copyright(c) 1994-2009 by the authors
+
+You are free to distribute this software under the terms of the
+GNU General Public License.
+On Debian systems, the complete text of the GNU General Public License
+can be found in /usr/share/common-licenses/GPL file.
+
+Many parts of this package are covered by a (Free-) BSD license. These
+include central error processing code (sg_lib.[hc] and sg_lib_data.[hc]),
+common command code (sg_cmds_basic.[hc], sg_cmds_mmc.[hc] and
+sg_cmds_extra.[hc]) and later utilities. They are Copyright: Douglas Gilbert.
+The author's intention is that the (Free-) BSD licensed code can be used
+freely by others. On Debian systems, the complete text of the BSD License
+can be found in `/usr/share/common-licenses/BSD'.
+
+--------------------------------------------------------------------
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/sg3_utils/sg3_utils.p5m	Fri Aug 24 11:46:52 2012 -0700
@@ -0,0 +1,143 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
+set name=pkg.fmri \
+    value=pkg:/system/storage/sg3_utils@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Utilities for devices that use SCSI command sets"
+set name=pkg.description \
+    value='Collection of utilities for devices that use the SCSI command set. Includes utilities to copy data based on "dd" syntax and semantics (called sg_dd, sgp_dd and sgm_dd); check INQUIRY data and VPD pages (sg_inq); check mode and log pages (sginfo, sg_modes and sg_logs); spin up and down disks (sg_start); do self tests (sg_senddiag); and various other functions. Warning: Some of these tools access the internals of your system and the incorrect usage of them may render your system inoperable.'
+set name=info.classification \
+    value="org.opensolaris.category.2008:Applications/System Utilities"
+set name=info.source-url value=http://sg.danny.cz/sg/p/sg3_utils-1.28.tgz \
+    value=http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh-1.35
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2009/029
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+dir  path=etc
+dir  path=etc/security
+dir  path=etc/security/exec_attr.d
+file sg3_utils-exec_attr path=etc/security/exec_attr.d/system:storage:sg3_utils
+dir  path=etc/security/prof_attr.d
+file sg3_utils-prof_attr path=etc/security/prof_attr.d/system:storage:sg3_utils
+dir  path=usr
+dir  path=usr/bin
+file path=usr/bin/sg_format
+file path=usr/bin/sg_get_config
+file path=usr/bin/sg_get_lba_status
+file path=usr/bin/sg_ident
+file path=usr/bin/sg_inq
+file path=usr/bin/sg_logs
+file path=usr/bin/sg_luns
+file path=usr/bin/sg_modes
+file path=usr/bin/sg_opcodes
+file path=usr/bin/sg_persist
+file path=usr/bin/sg_prevent
+file path=usr/bin/sg_raw
+file path=usr/bin/sg_rdac
+file path=usr/bin/sg_read_block_limits
+file path=usr/bin/sg_read_buffer
+file path=usr/bin/sg_read_long
+file path=usr/bin/sg_readcap
+file path=usr/bin/sg_reassign
+file path=usr/bin/sg_requests
+file path=usr/bin/sg_rmsn
+file path=usr/bin/sg_rtpg
+file path=usr/bin/sg_safte
+file path=usr/bin/sg_sat_identify
+file path=usr/bin/sg_sat_phy_event
+file path=usr/bin/sg_sat_set_features
+file path=usr/bin/sg_senddiag
+file path=usr/bin/sg_ses
+file path=usr/bin/sg_start
+file path=usr/bin/sg_stpg
+file path=usr/bin/sg_sync
+file path=usr/bin/sg_turs
+file path=usr/bin/sg_unmap
+file path=usr/bin/sg_verify
+file path=usr/bin/sg_vpd
+file path=usr/bin/sg_wr_mode
+file path=usr/bin/sg_write_buffer
+file path=usr/bin/sg_write_long
+file path=usr/bin/sg_write_same
+dir  path=usr/lib
+link path=usr/lib/libsgutils2.so target=libsgutils2.so.2.0.0
+link path=usr/lib/libsgutils2.so.2 target=libsgutils2.so.2.0.0
+file path=usr/lib/libsgutils2.so.2.0.0
+dir  path=usr/share
+dir  path=usr/share/man
+dir  path=usr/share/man/man1m
+file path=usr/share/man/man1m/sg3_utils.1m
+file path=usr/share/man/man1m/sg_format.1m
+file path=usr/share/man/man1m/sg_get_config.1m
+file path=usr/share/man/man1m/sg_get_lba_status.1m
+file path=usr/share/man/man1m/sg_ident.1m
+file path=usr/share/man/man1m/sg_inq.1m
+file path=usr/share/man/man1m/sg_logs.1m
+file path=usr/share/man/man1m/sg_luns.1m
+file path=usr/share/man/man1m/sg_modes.1m
+file path=usr/share/man/man1m/sg_opcodes.1m
+file path=usr/share/man/man1m/sg_persist.1m
+file path=usr/share/man/man1m/sg_prevent.1m
+file path=usr/share/man/man1m/sg_raw.1m
+file path=usr/share/man/man1m/sg_rdac.1m
+file path=usr/share/man/man1m/sg_read_block_limits.1m
+file path=usr/share/man/man1m/sg_read_buffer.1m
+file path=usr/share/man/man1m/sg_read_long.1m
+file path=usr/share/man/man1m/sg_readcap.1m
+file path=usr/share/man/man1m/sg_reassign.1m
+file path=usr/share/man/man1m/sg_requests.1m
+file path=usr/share/man/man1m/sg_rmsn.1m
+file path=usr/share/man/man1m/sg_rtpg.1m
+file path=usr/share/man/man1m/sg_safte.1m
+file path=usr/share/man/man1m/sg_sat_identify.1m
+file path=usr/share/man/man1m/sg_sat_phy_event.1m
+file path=usr/share/man/man1m/sg_sat_set_features.1m
+file path=usr/share/man/man1m/sg_senddiag.1m
+file path=usr/share/man/man1m/sg_ses.1m
+file path=usr/share/man/man1m/sg_start.1m
+file path=usr/share/man/man1m/sg_stpg.1m
+file path=usr/share/man/man1m/sg_sync.1m
+file path=usr/share/man/man1m/sg_turs.1m
+file path=usr/share/man/man1m/sg_unmap.1m
+file path=usr/share/man/man1m/sg_verify.1m
+file path=usr/share/man/man1m/sg_vpd.1m
+file path=usr/share/man/man1m/sg_wr_mode.1m
+file path=usr/share/man/man1m/sg_write_buffer.1m
+file path=usr/share/man/man1m/sg_write_long.1m
+file path=usr/share/man/man1m/sg_write_same.1m
+legacy pkg=SUNWsg3utilsr \
+    desc="sg3 - package of utilities for sending SCSI commands 1.26 (root)" \
+    name="sg3_utils - a package of utilities for sending SCSI commands (root)"
+legacy pkg=SUNWsg3utilsu \
+    desc="sg3 - package of utilities for sending SCSI commands 1.26 (usr)" \
+    name="sg3_utils - a package of utilities for sending SCSI commands (usr)"
+license sg3_utils.license license="GPLv2+ and BSD"
+
+# sg3_utils was previously in the 'desktop' consolidation. This optional
+# dependency is here to facilitate the safe transfer of the package 
+# to the 'userland' consolidation.
+depend type=optional fmri=consolidation/desktop/[email protected]