/
stage_template.sh
165 lines (141 loc) · 3.6 KB
/
stage_template.sh
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#!/bin/bash
set -xe
DIRS="
dev
etc/portage/package.keywords
etc/portage/package.use
etc/portage/postsync.d
etc/portage/profile
etc/portage/repos.conf
home
lib32
lib64
mnt/gentoo
proc
root
sys
tmp
usr/portage
var/lib/portage
"
for dir in $DIRS; do
mkdir -p stage-template/$dir
done
ln -sf lib64 stage-template/lib
cat << EOF > stage-template/etc/locale.gen
en_GB.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOF
cat << EOF > stage-template/etc/portage/package.keywords/net-libs
net-libs/libasr
EOF
cat << EOF > stage-template/etc/portage/package.keywords/net-misc
net-misc/casync
EOF
cat << EOF > stage-template/etc/portage/package.keywords/sys-boot
sys-boot/os-prober
EOF
cat << EOF > stage-template/etc/portage/package.keywords/sys-fs
sys-fs/zfs **
sys-fs/zfs-kmod **
EOF
cat << EOF > stage-template/etc/portage/package.keywords/sys-kernel
sys-kernel/dracut
sys-kernel/spl **
EOF
cat << EOF > stage-template/etc/portage/package.mask
# udev is replaced by systemd
sys-fs/udev
EOF
cat << EOF > stage-template/etc/portage/profile/package.use.mask
sys-fs/zfs -kernel-builtin
EOF
cat << EOF > stage-template/etc/portage/package.use/dev-lang
dev-lang/python sqlite
EOF
cat << EOF > stage-template/etc/portage/package.use/dev-python
dev-python/netaddr -cli
EOF
cat << EOF > stage-template/etc/portage/package.use/net-firewall
net-firewall/iptables conntrack netlink
EOF
cat << EOF > stage-template/etc/portage/package.use/sys-apps
sys-apps/systemd cryptsetup curl gcrypt gnuefi importd lzma
EOF
cat << EOF > stage-template/etc/portage/package.use/sys-boot
sys-boot/grub device-mapper mount
EOF
cat << EOF > stage-template/etc/portage/package.use/sys-fs
sys-fs/zfs kernel-builtin
EOF
ln -sf /usr/portage/profiles/default/linux/amd64/17.0/systemd stage-template/etc/make.profile
cat << EOF > stage-template/etc/portage/make.conf
ACCEPT_KEYWORDS="amd64"
EMERGE_DEFAULT_OPTS="--usepkg --autounmask-backtrack=y"
FEATURES="buildpkg binpkg-multi-instance parallel-fetch parallel-install userfetch userpriv usersync"
PORTAGE_RO_DISTDIRS="/usr/portage/distfiles"
DISTDIR="/var/lib/portage/distfiles/"
PKGDIR="/var/lib/portage/packages/"
RPMDIR="/var/lib/portage/rpms/"
USE="-consolekit systemd"
EOF
cp /usr/share/portage/config/repos.conf stage-template/etc/portage/repos.conf/gentoo.conf
cat << EOF > stage-template/etc/portage/postsync.d/eix-update
#!/bin/bash
[ -x /usr/bin/eix-update ] && /usr/bin/eix-update
EOF
chmod +x stage-template/etc/portage/postsync.d/eix-update
cat << EOF > stage-template/var/lib/portage/world
app-admin/sudo
app-admin/sysstat
app-editors/vim
app-emulation/cloud-init
app-portage/eix
app-portage/gentoolkit
app-portage/layman
app-portage/portage-utils
dev-python/virtualenv
dev-util/pkgconfig
dev-vcs/git
mail-mta/nullmailer
net-dns/bind-tools
net-misc/bridge-utils
net-misc/casync
net-misc/curl
net-fs/nfs-utils
net-wireless/wpa_supplicant
sys-apps/dmidecode
sys-apps/flashrom
sys-apps/gentoo-systemd-integration
sys-apps/pciutils
sys-apps/systemd
sys-apps/usbutils
sys-boot/grub
sys-boot/os-prober
sys-boot/syslinux
sys-devel/bc
sys-fs/cryptsetup
sys-fs/lvm2
sys-fs/squashfs-tools
sys-fs/zfs
sys-kernel/dracut
sys-kernel/linux-firmware
sys-process/htop
EOF
cat << EOF > stage-template/etc/nsswitch.conf
passwd: mymachines files
group: mymachines files
shadow: files
hosts: files resolve mymachines myhostname
networks: files dns
services: db files
protocols: db files
rpc: db files
ethers: db files
netmasks: files
netgroup: files
bootparams: files
automount: files
aliases: files
EOF
tar czf stage-template.tar.gz -C stage-template .