diff options
author | Brian Behlendorf <[email protected]> | 2010-03-11 09:53:59 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2010-03-11 09:53:59 -0800 |
commit | 414f1f975e5c8ac0e9a399e992e46f517ab59828 (patch) | |
tree | b0ba47694d578ff2a8519a6ee51277072c79fc54 /scripts/zfs-update.sh | |
parent | 774f7c02b181f6e18b91ebdd3092df57151da3e3 (diff) |
Rename update-zfs.sh -> zfs-update.sh for consistency
Diffstat (limited to 'scripts/zfs-update.sh')
-rwxr-xr-x | scripts/zfs-update.sh | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/scripts/zfs-update.sh b/scripts/zfs-update.sh new file mode 100755 index 000000000..03023eaef --- /dev/null +++ b/scripts/zfs-update.sh @@ -0,0 +1,179 @@ +#!/bin/bash +# +# 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 + +RELEASE=$1 +PROG=update-zfs.sh +REMOTE_DOC_FILE=man-sunosman-20090930.tar.bz2 +REMOTE_DOC=http://dlc.sun.com/osol/man/downloads/current/${REMOTE_DOC_FILE} +REMOTE_SRC=http://dlc.sun.com/osol/on/downloads/${RELEASE}/on-src.tar.bz2 + +die() { + rm -Rf ${SRC} + echo "${PROG}: $1" >&2 + exit 1 +} + +die_int() { + die "Ctrl-C abort" +} + +DST=`pwd` +if [ `basename $DST` != "scripts" ]; then + die "Must be run from scripts directory" +fi + +if [ ! "$RELEASE" ]; then + die "Must specify ZFS release build" +fi + +SRC=`mktemp -d /tmp/os-${RELEASE}.XXXXXXXXXX` +DST=`dirname $DST` + +echo "----------------------------------------------------------------" +echo "Remote Source: ${REMOTE_SRC}" +echo "Remote Docs: ${REMOTE_DOC}" +echo "Local Source: ${SRC}" +echo "Local Dest: ${DST}" +echo +echo "------------- Fetching OpenSolaris ${RELEASE} archive ----------------" +wget -q ${REMOTE_SRC} -P ${SRC} || + die "Error 'wget ${REMOTE_SRC}'" + +echo "------------- Fetching OpenSolaris documentation ---------------" +wget -q ${REMOTE_DOC} -P ${SRC} || + die "Error 'wget ${REMOTE_DOC}'" + +echo "------------- Unpacking OpenSolaris ${RELEASE} archive ---------------" +tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC} || + die "Error 'tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC}'" + +echo "------------- Unpacking OpenSolaris documentation --------------" +tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC} || + die "Error 'tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC}'" + +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 +SRC_MAN=${SRC}/man + +DST_MOD=${DST}/module +DST_LIB=${DST}/lib +DST_CMD=${DST}/cmd +DST_MAN=${DST}/man + +umask 022 +rm -Rf ${DST}/zfs + +echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------" +echo "* module/avl" +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/ + +echo "* module/nvpair" +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/ + +echo "* module/unicode" +mkdir -p ${DST_MOD}/unicode/include/sys/ +cp ${SRC_CM}/unicode/*.c ${DST_MOD}/unicode/ +cp ${SRC_UCM}/sys/u8_textprep.h ${DST_MOD}/unicode/include/sys/ +cp ${SRC_UCM}/sys/u8_textprep_data.h ${DST_MOD}/unicode/include/sys/ + +echo "* module/zcommon" +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/zvol.c +rm ${DST_MOD}/zfs/include/sys/vdev_disk.h + +echo "* lib/libavl" +# Full source available in 'module/avl' + +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/ + +echo "* lib/libunicode" +# Full source available in 'module/unicode' + +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/ + +echo "* lib/libefi" +mkdir -p ${DST_LIB}/libefi/include/sys/ +cp ${SRC_LIB}/libefi/common/rdwr_efi.c ${DST_LIB}/libefi/ +cp ${SRC_UCM}/sys/efi_partition.h ${DST_LIB}/libefi/include/sys/ +cp ${SRC_UCM}/sys/uuid.h ${DST_LIB}/libefi/include/sys/ + +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/ + +echo "* lib/libzfs" +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/ + +echo "* cmd/zpool" +mkdir -p ${DST_CMD}/zpool +cp ${SRC_CMD}/zpool/*.c ${DST_CMD}/zpool/ +cp ${SRC_CMD}/zpool/*.h ${DST_CMD}/zpool/ + +echo "* cmd/zfs" +mkdir -p ${DST_CMD}/zfs +cp ${SRC_CMD}/zfs/*.c ${DST_CMD}/zfs/ +cp ${SRC_CMD}/zfs/*.h ${DST_CMD}/zfs/ + +echo "* cmd/zdb" +mkdir -p ${DST_CMD}/zdb/ +cp ${SRC_CMD}/zdb/*.c ${DST_CMD}/zdb/ + +echo "* cmd/zinject" +mkdir -p ${DST_CMD}/zinject +cp ${SRC_CMD}/zinject/*.c ${DST_CMD}/zinject/ +cp ${SRC_CMD}/zinject/*.h ${DST_CMD}/zinject/ + +echo "* cmd/ztest" +mkdir -p ${DST_CMD}/ztest +cp ${SRC_CMD}/ztest/*.c ${DST_CMD}/ztest/ + +echo "* man/" +mkdir -p ${DST_MAN}/man8 +cp ${SRC_MAN}/man1m/zfs.1m ${DST_MAN}/man8/zfs.8 +cp ${SRC_MAN}/man1m/zpool.1m ${DST_MAN}/man8/zpool.8 +cp ${SRC_MAN}/man1m/zdb.1m ${DST_MAN}/man8/zdb.8 +chmod -R 644 ${DST_MAN}/man8/* + +echo "${REMOTE_SRC}" >${DST}/ZFS.RELEASE + +rm -Rf ${SRC} |