feat: add more automation to set up FreeBSD builds

This commit is contained in:
Andrew Rioux 2025-10-20 10:16:25 -04:00
parent cd1f73bc86
commit ee49644ce2
Signed by: andrew.rioux
GPG Key ID: 9B8BAC47C17ABB94

34
Vagrantfile vendored
View File

@ -1,17 +1,45 @@
uid = Process::UID.rid
$script = <<-SCRIPT $script = <<-SCRIPT
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y pw user add -n sparse-build -s /usr/local/bin/bash -m -u #{uid}
echo 'source "$HOME/.cargo/env"' > ~/.bashrc cat - <<EOD > /usr/local/etc/sudoers.d/sparse-build
Defaults:sparse-build !fqdn
Defaults:sparse-build !requiretty
sparse-build ALL=(ALL) NOPASSWD: ALL
EOD
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sudo -u sparse-build sh -s -- -y
pkg install -y git cmake
sudo -u sparse-build git clone https://github.com/the-tcpdump-group/libpcap /home/sparse-build/libpcap
cat - <<EOD > /home/sparse-build/.bashrc
source /home/sparse-build/.cargo/env
export SPARSE_BUILD_LIBPCAP=/home/sparse-build/libpcap
EOD
chown sparse-build /home/sparse-build/.bashrc
cat - <<'EOD' > /usr/local/bin/sparse-build
cd /vagrant
exec sudo -u sparse-build bash -i -c "/home/sparse-build/.cargo/bin/cargo build --target=x86_64-unknown-freebsd -p sparse-05-server $@"
EOD
chmod +x /usr/local/bin/sparse-build
SCRIPT SCRIPT
Vagrant.configure("2") do |config| Vagrant.configure("2") do |config|
config.vm.box = "generic/freebsd14" config.vm.box = "generic/freebsd14"
config.vm.network "private_network", ip: "192.168.56.198" config.vm.network "private_network", ip: "192.168.56.198"
config.vm.provision "shell", inline: $script config.vm.provision "shell", inline: $script
config.vm.synced_folder ".", "/vagrant", type: "nfs", nfs_version: 4, map_uid: uid, linux__nfs_options: ['rw']
config.vm.provider "virtualbox" do |vb| config.vm.provider "virtualbox" do |vb|
vb.memory = 8192 vb.memory = 8192
vb.cpus = 8 vb.cpus = 8
end end
config.vm.provider "libvirt" do |lv|
lv.cpus = 8
lv.memory = 8192
end
end end