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_SRC=http://dlc.sun.com/osol/on/downloads/${RELEASE}/on-src.tar.bz2
16 echo "${PROG}: $1" >&2
25 if [ `basename $DST` != "scripts" ]; then
26 die "Must be run from scripts directory"
29 SRC=`mktemp -d /tmp/os-${RELEASE}.XXXXXXXXXX`
32 echo "----------------------------------------------------------------------"
33 echo "Remote Source: ${REMOTE_SRC}"
34 echo "Local Source: ${SRC}"
35 echo "Local Dest: ${DST}"
37 echo "------------- Fetching OpenSolaris ${RELEASE} archive ----------------"
38 wget ${REMOTE_SRC} -P ${SRC} ||
39 die "Error 'wget ${REMOTE_SRC}'"
41 echo "------------- Unpacking OpenSolaris ${RELEASE} archive ---------------"
42 tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC} ||
43 die "Error 'tar -xjf ${SRC}/on-src.tar.bz2 -C ${SRC}'"
45 SRC_LIB=${SRC}/usr/src/lib
46 SRC_CMD=${SRC}/usr/src/cmd
47 SRC_CM=${SRC}/usr/src/common
48 SRC_UTS=${SRC}/usr/src/uts
49 SRC_UCM=${SRC}/usr/src/uts/common
50 SRC_ZLIB=${SRC}/usr/src/uts/common/fs/zfs
59 echo "------------- Updating ZFS from OpenSolaris ${RELEASE} ---------------"
61 mkdir -p ${DST_MOD}/avl/include/sys/
62 cp ${SRC_CM}/avl/avl.c ${DST_MOD}/avl/
63 cp ${SRC_UCM}/sys/avl.h ${DST_MOD}/avl/include/sys/
64 cp ${SRC_UCM}/sys/avl_impl.h ${DST_MOD}/avl/include/sys/
66 echo "* module/nvpair"
67 mkdir -p ${DST_MOD}/nvpair/include/sys/
68 cp ${SRC_CM}/nvpair/nvpair.c ${DST_MOD}/nvpair/
69 cp ${SRC_UCM}/sys/nvpair.h ${DST_MOD}/nvpair/include/sys/
70 cp ${SRC_UCM}/sys/nvpair_impl.h ${DST_MOD}/nvpair/include/sys/
72 echo "* module/zcommon"
73 mkdir -p ${DST_MOD}/zcommon/include/sys/fs/
74 mkdir -p ${DST_MOD}/zcommon/include/sys/fm/fs/
75 cp ${SRC_CM}/zfs/*.c ${DST_MOD}/zcommon/
76 cp ${SRC_CM}/zfs/*.h ${DST_MOD}/zcommon/include/
77 cp ${SRC_UCM}/sys/fs/zfs.h ${DST_MOD}/zcommon/include/sys/fs/
78 cp ${SRC_UCM}/sys/fm/fs/zfs.h ${DST_MOD}/zcommon/include/sys/fm/fs/
81 mkdir -p ${DST_MOD}/zpool/include/sys/
82 cp ${SRC_UTS}/intel/zfs/spa_boot.c ${DST_MOD}/zfs/
83 cp ${SRC_ZLIB}/*.c ${DST_MOD}/zfs/
84 cp ${SRC_ZLIB}/sys/*.h ${DST_MOD}/zfs/include/sys/
85 rm ${DST_MOD}/zfs/vdev_disk.c
86 rm ${DST_MOD}/zfs/include/sys/vdev_disk.h
89 mkdir -p ${DST_LIB}/libspl/include/sys/
90 cp ${SRC_LIB}/libc/port/gen/strlcat.c ${DST_LIB}/libspl/
91 cp ${SRC_LIB}/libc/port/gen/strlcpy.c ${DST_LIB}/libspl/
92 cp ${SRC_LIB}/libc/port/gen/strnlen.c ${DST_LIB}/libspl/
93 cp ${SRC_LIB}/libgen/common/mkdirp.c ${DST_LIB}/libspl/
94 cp ${SRC_CM}/unicode/u8_textprep.c ${DST_LIB}/libspl/
95 cp ${SRC_UCM}/os/list.c ${DST_LIB}/libspl/
96 cp ${SRC_UCM}/sys/list.h ${DST_LIB}/libspl/include/sys/
97 cp ${SRC_UCM}/sys/list_impl.h ${DST_LIB}/libspl/include/sys/
100 # Full source available in 'module/avl'
102 echo "* lib/libnvpair"
103 mkdir -p ${DST_LIB}/libnvpair/include/
104 cp ${SRC_UCM}/os/nvpair_alloc_system.c ${DST_LIB}/libnvpair/
105 cp ${SRC_LIB}/libnvpair/libnvpair.c ${DST_LIB}/libnvpair/
106 cp ${SRC_LIB}/libnvpair/libnvpair.h ${DST_LIB}/libnvpair/include/
108 echo "* lib/libuutil"
109 mkdir -p ${DST_LIB}/libuutil/include/
110 cp ${SRC_LIB}/libuutil/common/*.c ${DST_LIB}/libuutil/
111 cp ${SRC_LIB}/libuutil/common/*.h ${DST_LIB}/libuutil/include/
113 echo "* lib/libzcommon"
114 # Full source available in 'module/zcommon'
116 echo "* lib/libzpool"
117 mkdir -p ${DST_LIB}/libzpool/include/sys/
118 cp ${SRC_LIB}/libzpool/common/kernel.c ${DST_LIB}/libzpool/
119 cp ${SRC_LIB}/libzpool/common/taskq.c ${DST_LIB}/libzpool/
120 cp ${SRC_LIB}/libzpool/common/util.c ${DST_LIB}/libzpool/
121 cp ${SRC_LIB}/libzpool/common/sys/zfs_context.h ${DST_LIB}/libzpool/include/sys/
124 mkdir -p ${DST_LIB}/libzfs/include/
125 cp ${SRC_LIB}/libzfs/common/*.c ${DST_LIB}/libzfs/
126 cp ${SRC_LIB}/libzfs/common/*.h ${DST_LIB}/libzfs/include/
129 mkdir -p ${DST_CMD}/zpool
130 cp ${SRC_CMD}/zpool/*.c ${DST_CMD}/zpool/
131 cp ${SRC_CMD}/zpool/*.h ${DST_CMD}/zpool/
134 mkdir -p ${DST_CMD}/zfs
135 cp ${SRC_CMD}/zfs/*.c ${DST_CMD}/zfs/
136 cp ${SRC_CMD}/zfs/*.h ${DST_CMD}/zfs/
139 mkdir -p ${DST_CMD}/zdb/
140 cp ${SRC_CMD}/zdb/*.c ${DST_CMD}/zdb/
143 mkdir -p ${DST_CMD}/zdump
144 cp ${SRC_CMD}/zdump/*.c ${DST_CMD}/zdump/
147 mkdir -p ${DST_CMD}/zinject
148 cp ${SRC_CMD}/zinject/*.c ${DST_CMD}/zinject/
149 cp ${SRC_CMD}/zinject/*.h ${DST_CMD}/zinject/
152 mkdir -p ${DST_CMD}/ztest
153 cp ${SRC_CMD}/ztest/*.c ${DST_CMD}/ztest/
155 echo "${REMOTE_SRC}" >${DST}/ZFS.RELEASE