# Minimal Kickstart file
install
text
reboot
lang en_US.UTF-8

# repo to install the OS
url --url=<%= @mirror %>/Everything/x86_64/os/

keyboard us
network --bootproto dhcp
rootpw <%= @password %>
authconfig --enableshadow --passalgo=sha512 --enablefingerprint
firewall --enabled --ssh
selinux --enforcing
timezone --utc America/Los_Angeles
#firstboot --disable
bootloader --location=mbr --append="console=tty0 console=ttyS0,115200 rd_NO_PLYMOUTH crashkernel=auto"
zerombr
clearpart --all --initlabel
autopart --type=lvm
repo --name=everything --baseurl=<%= @mirror %>/Everything/x86_64/os/

#Just core packages
%packages --nobase
@core
ntp
@c-development
@development-tools
@rpm-development-tools
ncurses-devel
vim
bc
kexec-tools
cmake
libstdc++-static
python-netaddr
python-cachetools
python-futures
%end

%post --log=/root/anaconda-post.log
echo Kickstart post

chkconfig NetworkManager off
chkconfig network on

chkconfig ntpd on

dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo

yum -y clean metadata
yum -y update

hostname <%= @name %>.<%= @domain %>
echo "<%= @name %>.<%= @domain %>" > /etc/hostname

cat > /usr/local/bin/bpf-kernel-setup <<'DELIM__'
#!/bin/bash
set -e -x
numcpu=$(grep -c ^processor /proc/cpuinfo)

git clone https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
cd net-next/

cp /boot/config-$(uname -r) ./
cp ./config-$(uname -r) .config

make -j$numcpu mrproper
make -j$numcpu nconfig
make -j$numcpu bzImage
make -j$numcpu modules
sudo make modules_install
sudo make install
sudo make INSTALL_HDR_PATH=/usr/local headers_install

release=$(<include/config/kernel.release)
echo "kexec -l /boot/vmlinuz-$release --initrd=/boot/initramfs-$release.img --reuse-cmdline; reboot" > /usr/local/bin/kexec-$release
chmod +x /usr/local/bin/kexec-$release
ln -fs kexec-$release /usr/local/bin/kexec-latest

DELIM__
chmod +x /usr/local/bin/bpf-kernel-setup

cat > /usr/local/bin/bpf-llvm-setup <<'DELIM__'
#!/bin/bash
set -e -x
numcpu=$(grep -c ^processor /proc/cpuinfo)

git clone https://github.com/llvm-mirror/llvm.git
git clone https://github.com/llvm-mirror/clang.git llvm/tools/clang
mkdir llvm/build/
cd llvm/build/

cmake .. \
  -DBUILD_SHARED_LIBS=OFF \
  -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_ENABLE_TERMINFO=OFF \
  -DLLVM_TARGETS_TO_BUILD="ARM;CppBackend;X86;BPF" \
  -DCMAKE_INSTALL_PREFIX=/opt/local/llvm

make -j$numcpu
sudo make install
grep -q llvm $HOME/.bashrc || echo 'PATH=/opt/local/llvm/bin:$PATH' >> $HOME/.bashrc

DELIM__
chmod +x /usr/local/bin/bpf-llvm-setup

cat > /usr/local/bin/bcc-setup <<'DELIM__'
#!/bin/bash
set -e -x

git clone https://github.com/svinota/pyroute2.git
(cd pyroute2; make install)

numcpu=$(grep -c ^processor /proc/cpuinfo)

git clone https://github.com/iovisor/bcc.git
mkdir bcc/build/
cd bcc/build/
export PATH=/opt/local/llvm/bin:$PATH
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make -j$numcpu
DELIM__
chmod +x /usr/local/bin/bcc-setup

%end
