limit code to 80ch width
This commit is contained in:
parent
d21f365060
commit
32c372909a
7
config
7
config
|
|
@ -21,8 +21,10 @@
|
|||
|
||||
vars+=(release version mirror section blend_name image_name vm_name)
|
||||
vars+=(arch earch)
|
||||
|
||||
arrs+=(core_packages base_packages purge_packages blend_packages)
|
||||
|
||||
|
||||
os="devuan"
|
||||
release="jessie"
|
||||
version="1.0.0-beta2"
|
||||
|
|
@ -30,13 +32,14 @@ mirror="http://auto.mirror.devuan.org/merged"
|
|||
section="main"
|
||||
|
||||
image_name="${os}_${release}_${version}_${arch}"
|
||||
[[ -n $blend_name ]] && image_name="${image_name}_${blend_name}"
|
||||
[[ -n $device_name ]] && image_name="${image_name}_${device_name}"
|
||||
[[ -n "$blend_name" ]] && image_name="${image_name}_${blend_name}"
|
||||
[[ -n "$device_name" ]] && image_name="${image_name}_${device_name}"
|
||||
|
||||
vm_name="${os}_${release}_${version}_${arch}_vagrant"
|
||||
[[ -n $blend_name ]] && vm_name="${image_name}_${blend_name}"
|
||||
|
||||
rootcredentials="root:toor"
|
||||
usercredentials="devuan:devuan"
|
||||
|
||||
core_packages=(
|
||||
devuan-keyring
|
||||
|
|
|
|||
|
|
@ -55,13 +55,13 @@ bootstrap_complete_base() {
|
|||
|
||||
## write all system configuration
|
||||
notice "writing system configuration"
|
||||
conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null
|
||||
conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null
|
||||
conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null
|
||||
conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null
|
||||
conf_print_netifaces | sudo tee $strapdir/etc/network/interfaces >/dev/null
|
||||
conf_print_resolvconf | sudo tee $strapdir/etc/resolv.conf >/dev/null
|
||||
conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null
|
||||
conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null
|
||||
conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null
|
||||
conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null
|
||||
conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null
|
||||
conf_print_netifaces | sudo tee $strapdir/etc/network/interfaces >/dev/null
|
||||
conf_print_resolvconf | sudo tee $strapdir/etc/resolv.conf >/dev/null
|
||||
conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null
|
||||
conf_print_locales | sudo tee $strapdir/etc/profile.d/locales.sh >/dev/null
|
||||
|
||||
## write third-stage for chroot
|
||||
|
|
@ -71,12 +71,9 @@ bootstrap_complete_base() {
|
|||
## debootstrap stage 3
|
||||
notice "running debootstrap stage 3"
|
||||
|
||||
devprocsys mount $strapdir || zerr
|
||||
|
||||
chroot-script -d thirdstage || zerr
|
||||
|
||||
sleep 1
|
||||
devprocsys umount $strapdir || zerr
|
||||
|
||||
bootstrap_tar_pack || zerr
|
||||
bootstrap_tar_unpack $strapdir || zerr
|
||||
|
|
@ -160,12 +157,13 @@ apt-get --yes --force-yes autoremove
|
|||
apt-get clean
|
||||
EOF
|
||||
|
||||
devprocsys mount $strapdir
|
||||
chroot-script -d postunpack || zerr
|
||||
devprocsys umount $strapdir
|
||||
|
||||
## below typically used in arm-sdk
|
||||
[[ -n "$inittab" ]] && { print $inittab | sudo tee -a $strapdir/etc/inittab >/dev/null }
|
||||
[[ -n "$inittab" ]] && {
|
||||
print $inittab | sudo tee -a $strapdir/etc/inittab >/dev/null
|
||||
}
|
||||
|
||||
for i in $custmodules; do
|
||||
print $i | sudo tee -a $strapdir/etc/modules >/dev/null
|
||||
done || return 0
|
||||
|
|
|
|||
|
|
@ -33,8 +33,6 @@ build_image_dist() {
|
|||
notice "building complete dist image"
|
||||
act "$image_name"
|
||||
|
||||
## TODO: add blend_prebuild; blend_midbuild; blend_postbuild
|
||||
|
||||
bootstrap_complete_base || zerr
|
||||
blend_preinst || zerr
|
||||
image_prepare_raw || zerr
|
||||
|
|
@ -51,7 +49,6 @@ build_iso_dist() {
|
|||
ckreq || return 1
|
||||
|
||||
notice "building complete iso image"
|
||||
## XXX: TODO: upstream existing heads code
|
||||
|
||||
bootstrap_complete_base || zerr
|
||||
blend_preinst || zerr
|
||||
|
|
@ -86,7 +83,10 @@ build_vagrant_dist() {
|
|||
|
||||
getfield() {
|
||||
fn getfield $*
|
||||
print "$1" | grep "^$2=" | sed -e 's:.*=\(.*\)$:\1:g' | sed -e 's:^"\(.*\)"$:\1:g'
|
||||
print "$1" | \
|
||||
grep "^$2=" | \
|
||||
sed -e 's:.*=\(.*\)$:\1:g' | \
|
||||
sed -e 's:^"\(.*\)"$:\1:g'
|
||||
}
|
||||
|
||||
add-user() {
|
||||
|
|
@ -137,7 +137,9 @@ findloopmapp() {
|
|||
notice "finding a free loopdevice"
|
||||
|
||||
loopdevice=$(sudo losetup -f --show $workdir/${image_name}.img)
|
||||
mappdevice=$(sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q)
|
||||
mappdevice=$(sudo kpartx -va $loopdevice | \
|
||||
sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q)
|
||||
|
||||
func "loopdevice: $loopdevice"
|
||||
func "mappdevice: $mappdevice"
|
||||
|
||||
|
|
@ -252,11 +254,13 @@ chroot-script() {
|
|||
case "x$1" in
|
||||
x-d)
|
||||
local script="$2"
|
||||
dpkgdivert on "$strapdir"
|
||||
devprocsys mount "$strapdir" || zerr
|
||||
dpkgdivert on "$strapdir" || zerr
|
||||
notice "chrooting to execute $script..."
|
||||
sudo chmod +x "$strapdir/$script" || zerr
|
||||
sudo chmod +x "$strapdir/$script" || zerr
|
||||
sudo -E chroot "$strapdir" "/$script" || zerr
|
||||
dpkgdivert off "$strapdir"
|
||||
dpkgdivert off "$strapdir" || zerr
|
||||
devprocsys umount "$strapdir" || zerr
|
||||
;;
|
||||
*)
|
||||
local script="$1"
|
||||
|
|
|
|||
|
|
@ -73,7 +73,8 @@ image_partition_raw_gpt() {
|
|||
-l kernel -S 1 -T 5 -P 10 $workdir/${image_name}.img
|
||||
|
||||
cgpt add -i 2 -t data -b ${gpt_root[1]} \
|
||||
-s $(expr $(cgpt show $workdir/${image_name}.img | awk '/Sec GPT table/ {print $1}') - ${gpt_root[1]}) \
|
||||
-s $(expr $(cgpt show $workdir/${image_name}.img | \
|
||||
awk '/Sec GPT table/ {print $1}') - ${gpt_root[1]}) \
|
||||
-l Root $workdir/${image_name}.img
|
||||
|
||||
findloopmapp
|
||||
|
|
@ -104,8 +105,14 @@ image_pack_dist() {
|
|||
sleep 1
|
||||
}
|
||||
|
||||
sudo kpartx -dv $loopdevice || { die "kpartx failed to remove $loopdevice"; zerr }
|
||||
sudo losetup -d $loopdevice || { die "losetup failed to remove $loopdevice"; zerr }
|
||||
sudo kpartx -dv $loopdevice || {
|
||||
die "kpartx failed to remove $loopdevice"
|
||||
zerr
|
||||
}
|
||||
sudo losetup -d $loopdevice || {
|
||||
die "losetup failed to remove $loopdevice"
|
||||
zerr
|
||||
}
|
||||
|
||||
notice "compressing image with xz"
|
||||
silly
|
||||
|
|
@ -133,9 +140,12 @@ image_raw_mount() {
|
|||
ckreq || return 1
|
||||
|
||||
mkdir -p $workdir/mnt
|
||||
sudo mount $rootpart $workdir/mnt && act "mounted root partition" || zerr
|
||||
sudo mount $rootpart $workdir/mnt && \
|
||||
act "mounted root partition" || zerr
|
||||
|
||||
sudo mkdir $workdir/mnt/boot
|
||||
sudo mount $bootpart $workdir/mnt/boot && act "mounted boot partition" || zerr
|
||||
sudo mount $bootpart $workdir/mnt/boot && \
|
||||
act "mounted boot partition" || zerr
|
||||
}
|
||||
|
||||
image_raw_umount() {
|
||||
|
|
@ -167,7 +177,7 @@ image_raw_as_strapdir() {
|
|||
|
||||
notice "mounting raw image to strapdir"
|
||||
sudo mount ${loopdevice}p1 $strapdir
|
||||
echo 1 | sudo tee ${strapdir}/.keep >/dev/null ## hack? XXX: bootstrap_tar_unpack couldn't see it
|
||||
echo 1 | sudo tee ${strapdir}/.keep >/dev/null
|
||||
popd
|
||||
}
|
||||
|
||||
|
|
@ -193,6 +203,6 @@ image_qcow2_as_strapdir() {
|
|||
|
||||
notice "mounting qcow2 image to strapdir"
|
||||
sudo mount ${loopdevice}p1 $strapdir || zerr
|
||||
echo 1 | sudo tee ${strapdir}/.keep >/dev/null ## hack? XXX: bootstrap_tar_unpack couldn't see it
|
||||
echo 1 | sudo tee ${strapdir}/.keep >/dev/null
|
||||
popd
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,9 +36,7 @@ apt-get --yes --force-yes autoremove
|
|||
apt-get clean
|
||||
EOF
|
||||
|
||||
devprocsys mount $strapdir || zerr
|
||||
chroot-script -d isoprep || zerr
|
||||
devprocsys umount $strapdir || zerr
|
||||
}
|
||||
|
||||
iso_setup_isolinux() {
|
||||
|
|
@ -55,9 +53,9 @@ iso_setup_isolinux() {
|
|||
sudo cp $strapdir/boot/initrd* binary/live/initrd
|
||||
|
||||
sudo cp /usr/share/live/build/bootloaders/isolinux/isolinux.bin \
|
||||
binary/isolinux
|
||||
binary/isolinux || zerr
|
||||
sudo cp /usr/share/live/build/bootloaders/isolinux/*.c32 \
|
||||
binary/isolinux
|
||||
binary/isolinux || zerr
|
||||
popd
|
||||
}
|
||||
|
||||
|
|
@ -91,7 +89,8 @@ iso_squash_strap() {
|
|||
notice "creating squashfs out of strapdir"
|
||||
|
||||
pushd $workdir
|
||||
sudo mksquashfs $strapdir binary/live/filesystem.squashfs -comp xz -e boot || zerr
|
||||
sudo mksquashfs $strapdir binary/live/filesystem.squashfs \
|
||||
-comp xz -e boot || zerr
|
||||
popd
|
||||
}
|
||||
|
||||
|
|
|
|||
15
zlibs/rsync
15
zlibs/rsync
|
|
@ -26,17 +26,14 @@ rsync_to_raw_image() {
|
|||
|
||||
notice "rsyncing strapdir to raw image..."
|
||||
image_raw_mount
|
||||
sleep 1
|
||||
silly sleep 1
|
||||
|
||||
silly
|
||||
pushd $strapdir
|
||||
#sudo rm -f .done
|
||||
|
||||
sudo rsync -HPavz -q ./* $workdir/mnt || {
|
||||
image_raw_umount
|
||||
die "not enough space, please report a bug"
|
||||
zerr
|
||||
}
|
||||
sudo rsync -HPavz -q ./* $workdir/mnt || {
|
||||
image_raw_umount
|
||||
die "not enough space, please report a bug"
|
||||
zerr
|
||||
}
|
||||
popd
|
||||
|
||||
image_raw_umount
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ conf_print_netifaces() {
|
|||
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
|
||||
|
||||
# Include files from /etc/network/interfaces.d:
|
||||
source-directory /etc/network/interfaces.d
|
||||
# source-directory /etc/network/interfaces.d
|
||||
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
|
|
|||
47
zlibs/vm
47
zlibs/vm
|
|
@ -27,7 +27,7 @@ vm_inject_overrides() {
|
|||
ckreq || return 1
|
||||
|
||||
notice "injecting rootfs overrides"
|
||||
cat <<EOF | sudo -E tee ${strapdir}/etc/rc.local >/dev/null
|
||||
cat <<EOF | sudo tee ${strapdir}/etc/rc.local >/dev/null
|
||||
#!/bin/sh
|
||||
# rc.local for base images
|
||||
|
||||
|
|
@ -39,7 +39,8 @@ EOF
|
|||
|
||||
print "rootfs / rootfs rw 0 0" | sudo tee ${strapdir}/etc/fstab >/dev/null
|
||||
|
||||
sudo sed -i -e 's/without-password/yes/' ${strapdir}/etc/ssh/sshd_config || zerr
|
||||
sudo sed -i ${strapdir}/etc/ssh/sshd_config \
|
||||
-e 's/without-password/yes/' || zerr
|
||||
}
|
||||
|
||||
vm_setup_grub() {
|
||||
|
|
@ -54,13 +55,12 @@ export DEBIAN_FRONTEND=noninteractive
|
|||
apt-get --yes --force-yes install linux-image-amd64 grub-pc
|
||||
sed -e 's:GRUB_TIMEOUT=5:GRUB_TIMEOUT=1:' -i /etc/default/grub
|
||||
update-grub
|
||||
grub-install --no-floppy --recheck --modules="biosdisk part_msdos" ${loopdevice}
|
||||
grub-install --no-floppy --recheck --modules="biosdisk part_msdos" \
|
||||
${loopdevice}
|
||||
sed -e 's:${loopdevice}p1:/dev/sda1:g' -i /boot/grub/grub.cfg
|
||||
sync; sync; sync
|
||||
EOF
|
||||
devprocsys mount $strapdir || zerr
|
||||
chroot-script -d setupgrub || zerr
|
||||
devprocsys umount $strapdir || zerr
|
||||
}
|
||||
|
||||
vm_umount_${imageformat}() {
|
||||
|
|
@ -70,10 +70,11 @@ vm_umount_${imageformat}() {
|
|||
|
||||
notice "remounting ${imageformat} image"
|
||||
sudo mount -o remount,ro $strapdir || zerr
|
||||
sync
|
||||
|
||||
notice "flushing bytes and buffers"
|
||||
sudo blockdev --flushbufs $loopdevice || zerr
|
||||
sudo python -c 'import os; os.fsync(open("'${loopdevice}'", "r+b"))' || zerr
|
||||
sudo python -c 'import os;os.fsync(open("'${loopdevice}'", "r+b"))' || zerr
|
||||
|
||||
notice "unmounting ${imageformat} image from strapdir"
|
||||
sudo umount $strapdir || zerr
|
||||
silly sleep 1
|
||||
|
|
@ -101,22 +102,27 @@ vm_vbox_setup() {
|
|||
|
||||
notice "converting ${imageformat} image to vdi"
|
||||
pushd $workdir
|
||||
qemu-img convert -f ${imageformat} -O vdi base.${imageformat} base.vdi || zerr
|
||||
#sudo chown $USER base.vdi || zerr
|
||||
qemu-img convert \
|
||||
-f ${imageformat} \
|
||||
-O vdi \
|
||||
base.${imageformat} \
|
||||
base.vdi || zerr
|
||||
VBoxManage modifyhd base.vdi --type immutable --compact || zerr
|
||||
#act "removing old raw image"
|
||||
#rm -f base.raw
|
||||
|
||||
vmname="${os}-${release}-prevagrant"
|
||||
notice "importing base.vdi to a VBox"
|
||||
act "creating vm"
|
||||
VBoxManage createvm --name "$vmname" --ostype Debian_64 --register || zerr
|
||||
|
||||
act "setting up ram and group"
|
||||
VBoxManage modifyvm "$vmname" --memory 256 --groups /vmsdk || zerr
|
||||
|
||||
act "setting up storage"
|
||||
VBoxManage storagectl "$vmname" --name "IDE Controller" --add ide || zerr
|
||||
|
||||
act "attaching storage"
|
||||
VBoxManage storageattach "$vmname" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium base.vdi || zerr
|
||||
VBoxManage storageattach "$vmname" --storagectl "IDE Controller" --port 0 \
|
||||
--device 0 --type hdd --medium base.vdi || zerr
|
||||
|
||||
vminfo="$(VBoxManage showvminfo "$vmname" --machinereadable)"
|
||||
diskuuid="$(getfield "$vminfo" '"IDE Controller-ImageUUID-0-0"')"
|
||||
|
|
@ -155,7 +161,8 @@ EOF
|
|||
}
|
||||
EOF
|
||||
notice "actually packaging..."
|
||||
vagrant package --base "$vmname" --output ${vm_name}.box --include metadata.json --vagrantfile Vagrantfile || zerr
|
||||
vagrant package --base "$vmname" --output ${vm_name}.box \
|
||||
--include metadata.json --vagrantfile Vagrantfile || zerr
|
||||
popd
|
||||
}
|
||||
|
||||
|
|
@ -168,15 +175,19 @@ vm_pack_dist() {
|
|||
mkdir -p $R/dist
|
||||
mv $workdir/${vm_name}.box $R/dist
|
||||
mv $workdir/base.${imageformat} $R/dist/${vm_name}.${imageformat}
|
||||
|
||||
act "calculating sha256 sums..."
|
||||
silly
|
||||
sha256sum $R/dist/${vm_name}.box > $R/dist/${vm_name}.box.sha
|
||||
sha256sum $R/dist/${vm_name}.${imageformat} > $R/dist/${vm_name}.${imageformat}.sha
|
||||
sha256sum $R/dist/${vm_name}.box > \
|
||||
$R/dist/${vm_name}.box.sha
|
||||
sha256sum $R/dist/${vm_name}.${imageformat} > \
|
||||
$R/dist/${vm_name}.${imageformat}.sha
|
||||
|
||||
notice "cleaning up virtualbox leftovers"
|
||||
pushd "$workdir"
|
||||
VBoxManage unregistervm "$vmname" --delete
|
||||
rm -f metadata.json Vagrantfile
|
||||
rm -rf .vagrant
|
||||
VBoxManage unregistervm "$vmname" --delete
|
||||
rm -f metadata.json Vagrantfile
|
||||
rm -rf .vagrant
|
||||
popd
|
||||
rm -rf "$workdir"
|
||||
rm -rf "$HOME/VirtualBox VMs/vmsdk"
|
||||
|
|
|
|||
Loading…
Reference in New Issue