2008-11-20 23:01:55 +03:00
|
|
|
#!/bin/bash
|
2008-12-03 23:09:06 +03:00
|
|
|
#
|
|
|
|
# WARNING: This script removes the entire zfs subtree and will
|
|
|
|
# repopulate it using the requested OpenSolaris source release.
|
|
|
|
# This script should only be used when rebasing the TopGit tree
|
|
|
|
# against the latest release.
|
|
|
|
#
|
|
|
|
trap die_int INT
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
RELEASE=$1
|
2008-11-20 23:01:55 +03:00
|
|
|
PROG=update-zfs.sh
|
2008-12-03 23:09:06 +03:00
|
|
|
REMOTE_SRC=http://dlc.sun.com/osol/on/downloads/${RELEASE}/on-src.tar.bz2
|
2008-11-20 23:01:55 +03:00
|
|
|
|
|
|
|
die() {
|
2008-12-03 23:09:06 +03:00
|
|
|
rm -Rf ${SRC}
|
2008-11-20 23:01:55 +03:00
|
|
|
echo "${PROG}: $1" >&2
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
die_int() {
|
|
|
|
die "Ctrl-C abort"
|
|
|
|
}
|
|
|
|
|
|
|
|
DST=`pwd`
|
|
|
|
if [ `basename $DST` != "scripts" ]; then
|
2008-11-20 23:01:55 +03:00
|
|
|
die "Must be run from scripts directory"
|
|
|
|
fi
|
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
SRC=`mktemp -d /tmp/os-${RELEASE}.XXXXXXXXXX`
|
|
|
|
DST=`dirname $DST`
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
echo "----------------------------------------------------------------------"
|
|
|
|
echo "Remote Source: ${REMOTE_SRC}"
|
|
|
|
echo "Local Source: ${SRC}"
|
|
|
|
echo "Local Dest: ${DST}"
|
2008-11-20 23:01:55 +03:00
|
|
|
echo
|
2008-12-03 23:09:06 +03:00
|
|
|
echo "------------- Fetching OpenSolaris ${RELEASE} archive ----------------"
|
|
|
|
wget ${REMOTE_SRC} -P ${SRC} ||
|
|
|
|
die "Error 'wget ${REMOTE_SRC}'"
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-11 22:16:38 +03:00
|
|
|
echo "------------- Unpacking OpenSolaris ${RELEASE} archive ---------------"
|
2008-12-03 23:09:06 +03:00
|
|
|
tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC} ||
|
|
|
|
die "Error 'tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC}'"
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
SRC_LIB=${SRC}/usr/src/lib
|
|
|
|
SRC_CMD=${SRC}/usr/src/cmd
|
|
|
|
SRC_CM=${SRC}/usr/src/common
|
|
|
|
SRC_UTS=${SRC}/usr/src/uts
|
|
|
|
SRC_UCM=${SRC}/usr/src/uts/common
|
|
|
|
SRC_ZLIB=${SRC}/usr/src/uts/common/fs/zfs
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
DST_MOD=${DST}/module
|
|
|
|
DST_LIB=${DST}/lib
|
|
|
|
DST_CMD=${DST}/cmd
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
rm -Rf ${DST}/zfs
|
2008-11-20 23:01:55 +03:00
|
|
|
|
|
|
|
echo
|
2008-12-03 23:09:06 +03:00
|
|
|
echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------"
|
2008-12-12 01:21:14 +03:00
|
|
|
echo "* module/avl"
|
2008-12-11 22:08:09 +03:00
|
|
|
mkdir -p ${DST_MOD}/avl/include/sys/
|
|
|
|
cp ${SRC_CM}/avl/avl.c ${DST_MOD}/avl/
|
|
|
|
cp ${SRC_UCM}/sys/avl.h ${DST_MOD}/avl/include/sys/
|
|
|
|
cp ${SRC_UCM}/sys/avl_impl.h ${DST_MOD}/avl/include/sys/
|
|
|
|
|
2008-12-12 01:16:55 +03:00
|
|
|
echo "* module/nvpair"
|
2008-12-11 22:08:09 +03:00
|
|
|
mkdir -p ${DST_MOD}/nvpair/include/sys/
|
|
|
|
cp ${SRC_CM}/nvpair/nvpair.c ${DST_MOD}/nvpair/
|
|
|
|
cp ${SRC_UCM}/sys/nvpair.h ${DST_MOD}/nvpair/include/sys/
|
|
|
|
cp ${SRC_UCM}/sys/nvpair_impl.h ${DST_MOD}/nvpair/include/sys/
|
|
|
|
|
2008-12-12 01:21:14 +03:00
|
|
|
echo "* module/zcommon"
|
2008-12-11 22:08:09 +03:00
|
|
|
mkdir -p ${DST_MOD}/zcommon/include/sys/fs/
|
|
|
|
mkdir -p ${DST_MOD}/zcommon/include/sys/fm/fs/
|
|
|
|
cp ${SRC_CM}/zfs/*.c ${DST_MOD}/zcommon/
|
|
|
|
cp ${SRC_CM}/zfs/*.h ${DST_MOD}/zcommon/include/
|
|
|
|
cp ${SRC_UCM}/sys/fs/zfs.h ${DST_MOD}/zcommon/include/sys/fs/
|
|
|
|
cp ${SRC_UCM}/sys/fm/fs/zfs.h ${DST_MOD}/zcommon/include/sys/fm/fs/
|
|
|
|
|
|
|
|
echo "* module/zfs"
|
|
|
|
mkdir -p ${DST_MOD}/zpool/include/sys/
|
|
|
|
cp ${SRC_UTS}/intel/zfs/spa_boot.c ${DST_MOD}/zfs/
|
|
|
|
cp ${SRC_ZLIB}/*.c ${DST_MOD}/zfs/
|
|
|
|
cp ${SRC_ZLIB}/sys/*.h ${DST_MOD}/zfs/include/sys/
|
|
|
|
rm ${DST_MOD}/zfs/vdev_disk.c
|
|
|
|
rm ${DST_MOD}/zfs/include/sys/vdev_disk.h
|
|
|
|
|
2008-12-12 01:21:14 +03:00
|
|
|
echo "* lib/libavl"
|
|
|
|
# Full source available in 'module/avl'
|
|
|
|
|
2008-12-12 01:16:55 +03:00
|
|
|
echo "* lib/libnvpair"
|
|
|
|
mkdir -p ${DST_LIB}/libnvpair/include/
|
|
|
|
cp ${SRC_UCM}/os/nvpair_alloc_system.c ${DST_LIB}/libnvpair/
|
|
|
|
cp ${SRC_LIB}/libnvpair/libnvpair.c ${DST_LIB}/libnvpair/
|
|
|
|
cp ${SRC_LIB}/libnvpair/libnvpair.h ${DST_LIB}/libnvpair/include/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* lib/libuutil"
|
|
|
|
mkdir -p ${DST_LIB}/libuutil/include/
|
|
|
|
cp ${SRC_LIB}/libuutil/common/*.c ${DST_LIB}/libuutil/
|
|
|
|
cp ${SRC_LIB}/libuutil/common/*.h ${DST_LIB}/libuutil/include/
|
2008-12-03 23:09:06 +03:00
|
|
|
|
2008-12-11 22:14:49 +03:00
|
|
|
echo "* lib/libzpool"
|
|
|
|
mkdir -p ${DST_LIB}/libzpool/include/sys/
|
|
|
|
cp ${SRC_LIB}/libzpool/common/kernel.c ${DST_LIB}/libzpool/
|
|
|
|
cp ${SRC_LIB}/libzpool/common/taskq.c ${DST_LIB}/libzpool/
|
|
|
|
cp ${SRC_LIB}/libzpool/common/util.c ${DST_LIB}/libzpool/
|
|
|
|
cp ${SRC_LIB}/libzpool/common/sys/zfs_context.h ${DST_LIB}/libzpool/include/sys/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* lib/libzfs"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_LIB}/libzfs/include/
|
|
|
|
cp ${SRC_LIB}/libzfs/common/*.c ${DST_LIB}/libzfs/
|
|
|
|
cp ${SRC_LIB}/libzfs/common/*.h ${DST_LIB}/libzfs/include/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* cmd/zpool"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_CMD}/zpool
|
|
|
|
cp ${SRC_CMD}/zpool/*.c ${DST_CMD}/zpool/
|
|
|
|
cp ${SRC_CMD}/zpool/*.h ${DST_CMD}/zpool/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* cmd/zfs"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_CMD}/zfs
|
|
|
|
cp ${SRC_CMD}/zfs/*.c ${DST_CMD}/zfs/
|
|
|
|
cp ${SRC_CMD}/zfs/*.h ${DST_CMD}/zfs/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* cmd/zdb"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_CMD}/zdb/
|
|
|
|
cp ${SRC_CMD}/zdb/*.c ${DST_CMD}/zdb/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* cmd/zinject"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_CMD}/zinject
|
|
|
|
cp ${SRC_CMD}/zinject/*.c ${DST_CMD}/zinject/
|
|
|
|
cp ${SRC_CMD}/zinject/*.h ${DST_CMD}/zinject/
|
|
|
|
|
2008-12-11 22:08:09 +03:00
|
|
|
echo "* cmd/ztest"
|
2008-12-03 23:09:06 +03:00
|
|
|
mkdir -p ${DST_CMD}/ztest
|
|
|
|
cp ${SRC_CMD}/ztest/*.c ${DST_CMD}/ztest/
|
2008-11-20 23:01:55 +03:00
|
|
|
|
2008-12-11 22:14:49 +03:00
|
|
|
echo "${REMOTE_SRC}" >${DST}/ZFS.RELEASE
|
|
|
|
|
2008-12-03 23:09:06 +03:00
|
|
|
rm -Rf ${SRC}
|