3 # WARNING: This script removes the entire zfs subtree and will
4 # repopulate it using the requested OpenSolaris source release.
5 # This script should only be used when rebasing the TopGit tree
6 # against the latest release.
12 REMOTE_DOC_FILE=man-sunosman-20090930.tar.bz2
13 REMOTE_DOC=http://dlc.sun.com/osol/man/downloads/current/${REMOTE_DOC_FILE}
14 REMOTE_SRC=http://dlc.sun.com/osol/on/downloads/${RELEASE}/on-src.tar.bz2
18 echo "${PROG}: $1" >&2
27 if [ `basename $DST` != "scripts" ]; then
28 die "Must be run from scripts directory"
31 if [ ! "$RELEASE" ]; then
32 die "Must specify ZFS release build"
35 SRC=`mktemp -d /tmp/os-${RELEASE}.XXXXXXXXXX`
38 echo "----------------------------------------------------------------"
39 echo "Remote Source: ${REMOTE_SRC}"
40 echo "Remote Docs: ${REMOTE_DOC}"
41 echo "Local Source: ${SRC}"
42 echo "Local Dest: ${DST}"
44 echo "------------- Fetching OpenSolaris ${RELEASE} archive ----------------"
45 wget -q ${REMOTE_SRC} -P ${SRC} ||
46 die "Error 'wget ${REMOTE_SRC}'"
48 echo "------------- Fetching OpenSolaris documentation ---------------"
49 wget -q ${REMOTE_DOC} -P ${SRC} ||
50 die "Error 'wget ${REMOTE_DOC}'"
52 echo "------------- Unpacking OpenSolaris ${RELEASE} archive ---------------"
53 tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC} ||
54 die "Error 'tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC}'"
56 echo "------------- Unpacking OpenSolaris documentation --------------"
57 tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC} ||
58 die "Error 'tar -xjf ${SRC}/${REMOTE_DOC_FILE} -C ${SRC}'"
60 SRC_LIB=${SRC}/usr/src/lib
61 SRC_CMD=${SRC}/usr/src/cmd
62 SRC_CM=${SRC}/usr/src/common
63 SRC_UTS=${SRC}/usr/src/uts
64 SRC_UCM=${SRC}/usr/src/uts/common
65 SRC_ZLIB=${SRC}/usr/src/uts/common/fs/zfs
76 echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------"
78 mkdir -p ${DST_MOD}/avl/include/sys/
79 cp ${SRC_CM}/avl/avl.c ${DST_MOD}/avl/
80 cp ${SRC_UCM}/sys/avl.h ${DST_MOD}/avl/include/sys/
81 cp ${SRC_UCM}/sys/avl_impl.h ${DST_MOD}/avl/include/sys/
83 echo "* module/nvpair"
84 mkdir -p ${DST_MOD}/nvpair/include/sys/
85 cp ${SRC_CM}/nvpair/nvpair.c ${DST_MOD}/nvpair/
86 cp ${SRC_CM}/nvpair/nvpair_alloc_fixed.c ${DST_MOD}/nvpair/
87 cp ${SRC_UCM}/sys/nvpair.h ${DST_MOD}/nvpair/include/sys/
88 cp ${SRC_UCM}/sys/nvpair_impl.h ${DST_MOD}/nvpair/include/sys/
90 echo "* module/unicode"
91 mkdir -p ${DST_MOD}/unicode/include/sys/
92 cp ${SRC_CM}/unicode/*.c ${DST_MOD}/unicode/
93 cp ${SRC_UCM}/sys/u8_textprep.h ${DST_MOD}/unicode/include/sys/
94 cp ${SRC_UCM}/sys/u8_textprep_data.h ${DST_MOD}/unicode/include/sys/
96 echo "* module/zcommon"
97 mkdir -p ${DST_MOD}/zcommon/include/sys/fs/
98 cp ${SRC_CM}/zfs/*.c ${DST_MOD}/zcommon/
99 cp ${SRC_CM}/zfs/*.h ${DST_MOD}/zcommon/include/
100 cp ${SRC_UCM}/sys/fs/zfs.h ${DST_MOD}/zcommon/include/sys/fs/
103 mkdir -p ${DST_MOD}/zfs/include/sys/fm/fs/
104 cp ${SRC_UTS}/intel/zfs/spa_boot.c ${DST_MOD}/zfs/
105 cp ${SRC_ZLIB}/*.c ${DST_MOD}/zfs/
106 cp ${SRC_ZLIB}/sys/*.h ${DST_MOD}/zfs/include/sys/
107 cp ${SRC_UCM}/os/fm.c ${DST_MOD}/zfs/
108 cp ${SRC_UCM}/sys/fm/protocol.h ${DST_MOD}/zfs/include/sys/fm/
109 cp ${SRC_UCM}/sys/fm/util.h ${DST_MOD}/zfs/include/sys/fm/
110 cp ${SRC_UCM}/sys/fm/fs/zfs.h ${DST_MOD}/zfs/include/sys/fm/fs/
111 rm ${DST_MOD}/zfs/vdev_disk.c
112 rm ${DST_MOD}/zfs/zvol.c
113 rm ${DST_MOD}/zfs/include/sys/vdev_disk.h
116 # Full source available in 'module/avl'
118 echo "* lib/libnvpair"
119 mkdir -p ${DST_LIB}/libnvpair/include/
120 cp ${SRC_UCM}/os/nvpair_alloc_system.c ${DST_LIB}/libnvpair/
121 cp ${SRC_LIB}/libnvpair/libnvpair.c ${DST_LIB}/libnvpair/
122 cp ${SRC_LIB}/libnvpair/libnvpair.h ${DST_LIB}/libnvpair/include/
124 echo "* lib/libunicode"
125 # Full source available in 'module/unicode'
127 echo "* lib/libuutil"
128 mkdir -p ${DST_LIB}/libuutil/include/
129 cp ${SRC_LIB}/libuutil/common/*.c ${DST_LIB}/libuutil/
130 cp ${SRC_LIB}/libuutil/common/*.h ${DST_LIB}/libuutil/include/
133 mkdir -p ${DST_LIB}/libefi/include/sys/
134 cp ${SRC_LIB}/libefi/common/rdwr_efi.c ${DST_LIB}/libefi/
135 cp ${SRC_UCM}/sys/efi_partition.h ${DST_LIB}/libefi/include/sys/
136 cp ${SRC_UCM}/sys/uuid.h ${DST_LIB}/libefi/include/sys/
138 echo "* lib/libzpool"
139 mkdir -p ${DST_LIB}/libzpool/include/sys/
140 cp ${SRC_LIB}/libzpool/common/kernel.c ${DST_LIB}/libzpool/
141 cp ${SRC_LIB}/libzpool/common/taskq.c ${DST_LIB}/libzpool/
142 cp ${SRC_LIB}/libzpool/common/util.c ${DST_LIB}/libzpool/
143 cp ${SRC_LIB}/libzpool/common/sys/zfs_context.h ${DST_LIB}/libzpool/include/sys/
146 mkdir -p ${DST_LIB}/libzfs/include/
147 cp ${SRC_LIB}/libzfs/common/*.c ${DST_LIB}/libzfs/
148 cp ${SRC_LIB}/libzfs/common/*.h ${DST_LIB}/libzfs/include/
151 mkdir -p ${DST_CMD}/zpool
152 cp ${SRC_CMD}/zpool/*.c ${DST_CMD}/zpool/
153 cp ${SRC_CMD}/zpool/*.h ${DST_CMD}/zpool/
156 mkdir -p ${DST_CMD}/zfs
157 cp ${SRC_CMD}/zfs/*.c ${DST_CMD}/zfs/
158 cp ${SRC_CMD}/zfs/*.h ${DST_CMD}/zfs/
161 mkdir -p ${DST_CMD}/zdb/
162 cp ${SRC_CMD}/zdb/*.c ${DST_CMD}/zdb/
165 mkdir -p ${DST_CMD}/zinject
166 cp ${SRC_CMD}/zinject/*.c ${DST_CMD}/zinject/
167 cp ${SRC_CMD}/zinject/*.h ${DST_CMD}/zinject/
170 mkdir -p ${DST_CMD}/ztest
171 cp ${SRC_CMD}/ztest/*.c ${DST_CMD}/ztest/
174 mkdir -p ${DST_MAN}/man8
175 cp ${SRC_MAN}/man1m/zfs.1m ${DST_MAN}/man8/zfs.8
176 cp ${SRC_MAN}/man1m/zpool.1m ${DST_MAN}/man8/zpool.8
177 cp ${SRC_MAN}/man1m/zdb.1m ${DST_MAN}/man8/zdb.8
178 chmod -R 644 ${DST_MAN}/man8/*
180 echo "${REMOTE_SRC}" >${DST}/ZFS.RELEASE