-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·85 lines (73 loc) · 3.38 KB
/
build.sh
File metadata and controls
executable file
·85 lines (73 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/bash -xe
EPREFIX=/home/core/gentoo
cd /home/core
if [[ ! -d linux-$(uname -r | sed 's/+$//') ]]; then
wget -q https://www.kernel.org/pub/linux/kernel/v3.x/linux-$(uname -r | sed 's/+$//').tar.xz
tar xf linux-$(uname -r | sed 's/+$//').tar.xz
cd linux-$(uname -r | sed 's/+$//')
cd ..
fi
zcat /proc/config.gz > linux-$(uname -r | sed 's/+$//')/.config
sed -i -e '/CONFIG_SYSTEM_TRUSTED_KEYRING=y/d' linux-$(uname -r | sed 's/+$//')/.config
touch linux-$(uname -r | sed 's/+$//')/.x509.list
touch linux-$(uname -r | sed 's/+$//')/bootengine.cpio
make -j8 -C $HOME/linux-$(uname -r | sed 's/+$//') vmlinux modules
if [ -f ${EPREFIX}/etc/portage/package.unmask ]
then
mv ${EPREFIX}/etc/portage/package.unmask{,.bak}
mkdir ${EPREFIX}/etc/portage/package.unmask
mv ${EPREFIX}/etc/portage/package.unmask{.bak,/coreos}
fi
if [ -f ${EPREFIX}/etc/portage/package.accept_keywords ]
then
mv ${EPREFIX}/etc/portage/package.accept_keywords{,.bak}
mkdir ${EPREFIX}/etc/portage/package.accept_keywords
mv ${EPREFIX}/etc/portage/package.accept_keywords{.bak,/coreos}
fi
# attempt to build latest git version of zfs and spl with "=[pkgname]-9999" syntax.
if [ ! -f ${EPREFIX}/etc/portage/package.unmask/core-zfs-9999 ]
then
mkdir -p ${EPREFIX}/etc/portage/package.unmask
echo "=sys-kernel/spl-9999" >> ${EPREFIX}/etc/portage/package.unmask/core-zfs-9999
echo "=sys-fs/zfs-kmod-9999" >> ${EPREFIX}/etc/portage/package.unmask/core-zfs-9999
echo "=sys-fs/zfs-9999" >> ${EPREFIX}/etc/portage/package.unmask/core-zfs-9999
fi
if [ ! -f ${EPREFIX}/etc/portage/package.accept_keywords/core-zfs-9999 ]
then
mkdir -p ${EPREFIX}/etc/portage/package.accept_keywords
echo "sys-kernel/spl **" >> ${EPREFIX}/etc/portage/package.accept_keywords/core-zfs-9999
echo "sys-fs/zfs-kmod **" >> ${EPREFIX}/etc/portage/package.accept_keywords/core-zfs-9999
echo "sys-fs/zfs **" >> ${EPREFIX}/etc/portage/package.accept_keywords/core-zfs-9999
fi
# The following should allow us to pin a specific revision of ZFS.
#export spl_LIVE_COMMIT=...
#export zfs_kmod_LIVE_COMMIT=...
#export zfs_LIVE_COMMIT=...
ebuild ${EPREFIX}/usr/portage/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild digest
ebuild ${EPREFIX}/usr/portage/sys-fs/zfs/zfs-9999.ebuild digest
ebuild ${EPREFIX}/usr/portage/sys-kernel/spl/spl-9999.ebuild digest
env KERNEL_DIR=$HOME/linux-$(uname -r | sed 's/+$//') EXTRA_ECONF="--disable-systemd --with-udevdir=$HOME/gentoo/lib/udev --with-dracutdir=$HOME/gentoo/usr/lib/dracut --with-linux=$HOME/linux-$(uname -r | sed 's/+$//')" KV_OUT_DIR=$HOME/linux-$(uname -r | sed 's/+$//') emerge -j8 -1v =sys-kernel/spl-9999 =sys-fs/zfs-kmod-9999 =sys-fs/zfs-9999
cp ~/linux-$(uname -r | sed 's/+$//')/modules.{order,builtin} ${EPREFIX}/lib/modules/$(uname -r)/
sudo depmod -b ~/gentoo
sudo rmmod zunicode zavl zcommon znvpair spl zfs || true
# Check that the new modules are loadable...
sudo modprobe -d ~/gentoo zfs
tar zcfv zfs-$(uname -r).tar.gz \
gentoo/usr/sbin/{zpool,zfs} \
gentoo/usr/lib/modules/$(uname -r) \
gentoo/lib \
gentoo/sbin \
gentoo/usr/lib/*.so* \
gentoo/usr/lib/libnvpair* \
gentoo/usr/lib/libuutil* \
gentoo/usr/lib/libzpool* \
gentoo/usr/lib/libzfs* \
gentoo/usr/lib/libm* \
gentoo/usr/lib/libdl* \
gentoo/usr/lib/libblkid* \
gentoo/usr/lib/librt* \
gentoo/usr/lib/libuuid* \
gentoo/usr/lib/libz* \
gentoo/usr/lib/libpthread* \
gentoo/usr/lib/libc* \
gentoo/usr/lib/ld-linux-x86-64*