refresh libdevuansdk code
This commit is contained in:
parent
a4cf35c5b6
commit
f002c12258
|
|
@ -32,7 +32,7 @@ Devuan's SDK was originally conceived during a period of residency at the
|
||||||
Schumacher college in Dartington, UK. Greatly inspired by the laborious and
|
Schumacher college in Dartington, UK. Greatly inspired by the laborious and
|
||||||
mindful atmosphere of its wonderful premises.
|
mindful atmosphere of its wonderful premises.
|
||||||
|
|
||||||
The Devuan SDK is Copyright (c) 2015-2016 by the Dyne.org Foundation
|
The Devuan SDK is Copyright (c) 2015-2017 by the Dyne.org Foundation
|
||||||
|
|
||||||
Devuan SDK components are designed, written and maintained by:
|
Devuan SDK components are designed, written and maintained by:
|
||||||
|
|
||||||
|
|
|
||||||
16
config
16
config
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
## libdevuansdk configuration
|
## libdevuansdk configuration
|
||||||
|
|
||||||
vars+=(release version mirror section blend_name)
|
vars+=(release version mirror section blend_name image_name vm_name)
|
||||||
arrs+=(core_packages base_packages purge_packages blend_packages)
|
arrs+=(core_packages base_packages purge_packages blend_packages)
|
||||||
|
|
||||||
os="devuan"
|
os="devuan"
|
||||||
|
|
@ -28,12 +28,15 @@ version="1.0.0-beta2"
|
||||||
mirror="http://auto.mirror.devuan.org/merged"
|
mirror="http://auto.mirror.devuan.org/merged"
|
||||||
section="main"
|
section="main"
|
||||||
|
|
||||||
isomirror="http://files.devuan.org/devuan_jessie_beta"
|
|
||||||
|
|
||||||
image_name="${os}_${release}_${version}_${arch}"
|
image_name="${os}_${release}_${version}_${arch}"
|
||||||
[[ -n $blend_name ]] && image_name="${image_name}_${blend_name}"
|
[[ -n $blend_name ]] && image_name="${image_name}_${blend_name}"
|
||||||
[[ -n $device_name ]] && image_name="${image_name}_${device_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"
|
||||||
|
|
||||||
core_packages=(
|
core_packages=(
|
||||||
devuan-keyring
|
devuan-keyring
|
||||||
debian-keyring
|
debian-keyring
|
||||||
|
|
@ -73,9 +76,4 @@ base_packages=(
|
||||||
|
|
||||||
purge_packages+=(
|
purge_packages+=(
|
||||||
dbus
|
dbus
|
||||||
nano
|
|
||||||
exim4
|
|
||||||
exim4-base
|
|
||||||
exim4-config
|
|
||||||
reportbug
|
|
||||||
)
|
)
|
||||||
|
|
|
||||||
15
libdevuansdk
15
libdevuansdk
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this source code. If not, see <http://www.gnu.org/licenses/>.
|
# along with this source code. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
libdevuansdk_version="0.3"
|
libdevuansdk_version="0.4"
|
||||||
LIBPATH=${LIBPATH:-$(dirname $0)}
|
LIBPATH=${LIBPATH:-$(dirname $0)}
|
||||||
|
|
||||||
source $LIBPATH/config
|
source $LIBPATH/config
|
||||||
|
|
@ -33,15 +33,6 @@ source $LIBPATH/zlibs/vm
|
||||||
vars+=(libdevuansdk_version)
|
vars+=(libdevuansdk_version)
|
||||||
vars+=(LIBPATH)
|
vars+=(LIBPATH)
|
||||||
|
|
||||||
if [[ $DEBUG -gt 0 ]]; then
|
setopt pushdsilent
|
||||||
cp="/bin/cp -v"
|
|
||||||
mkdir="/bin/mkdir -v"
|
|
||||||
else
|
|
||||||
cp="/bin/cp"
|
|
||||||
mkdir="/bin/mkdir"
|
|
||||||
setopt pushdsilent
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo="sudo -E"
|
|
||||||
|
|
||||||
act "libdevuansdk v$libdevuansdk_version loaded"
|
act "libdevuansdk v$libdevuansdk_version loaded"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -52,18 +52,17 @@ bootstrap_complete_base() {
|
||||||
|
|
||||||
## write all system configuration
|
## write all system configuration
|
||||||
notice "writing system configuration"
|
notice "writing system configuration"
|
||||||
conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null
|
conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null
|
||||||
conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null
|
conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null
|
||||||
conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null
|
conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null
|
||||||
conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null
|
conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null
|
||||||
conf_print_networkifaces | sudo tee $strapdir/etc/network/interfaces >/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_resolvconf | sudo tee $strapdir/etc/resolv.conf >/dev/null
|
||||||
conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/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
|
conf_print_locales | sudo tee $strapdir/etc/profile.d/locales.sh >/dev/null
|
||||||
|
|
||||||
## write third-stage for chroot
|
## write third-stage for chroot
|
||||||
bootstrap_config_thirdstage | sudo tee $strapdir/thirdstage >/dev/null
|
bootstrap_config_thirdstage | sudo tee $strapdir/thirdstage >/dev/null
|
||||||
bootstrap_config_cleanup | sudo tee $strapdir/cleanup >/dev/null
|
|
||||||
|
|
||||||
## chroot into it and configure further
|
## chroot into it and configure further
|
||||||
## debootstrap stage 3
|
## debootstrap stage 3
|
||||||
|
|
@ -72,7 +71,6 @@ bootstrap_complete_base() {
|
||||||
devprocsys mount $strapdir || zerr
|
devprocsys mount $strapdir || zerr
|
||||||
|
|
||||||
chroot-script -d thirdstage || zerr
|
chroot-script -d thirdstage || zerr
|
||||||
chroot-script -d cleanup || zerr
|
|
||||||
|
|
||||||
sleep 1
|
sleep 1
|
||||||
devprocsys umount $strapdir || zerr
|
devprocsys umount $strapdir || zerr
|
||||||
|
|
@ -81,22 +79,6 @@ bootstrap_complete_base() {
|
||||||
bootstrap_tar_unpack $strapdir || zerr
|
bootstrap_tar_unpack $strapdir || zerr
|
||||||
}
|
}
|
||||||
|
|
||||||
bootstrap_config_cleanup() {
|
|
||||||
fn config_cleanup
|
|
||||||
|
|
||||||
cat << EOF
|
|
||||||
#!/bin/sh
|
|
||||||
rm -f /debconf.set
|
|
||||||
rm -f /thirdstage
|
|
||||||
rm -f /etc/ssh/ssh_host_*
|
|
||||||
rm -f /root/.bash_history
|
|
||||||
#rm -f /usr/bin/qemu-arm-static
|
|
||||||
## our file for which we check the bootstrap is complete
|
|
||||||
echo "1" > .done
|
|
||||||
rm -f /cleanup
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
bootstrap_config_thirdstage() {
|
bootstrap_config_thirdstage() {
|
||||||
fn bootstrap_config_thirdstage
|
fn bootstrap_config_thirdstage
|
||||||
req=(core_packages base_packages)
|
req=(core_packages base_packages)
|
||||||
|
|
@ -107,7 +89,7 @@ bootstrap_config_thirdstage() {
|
||||||
apt-get update
|
apt-get update
|
||||||
debconf-set-selections /debconf.set
|
debconf-set-selections /debconf.set
|
||||||
|
|
||||||
echo "root:toor" | chpasswd
|
echo "${rootcredentials}" | chpasswd
|
||||||
sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' \
|
sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' \
|
||||||
/lib/udev/rules.d/75-persistent-net-generator.rules
|
/lib/udev/rules.d/75-persistent-net-generator.rules
|
||||||
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
||||||
|
|
@ -118,6 +100,11 @@ apt-get --yes --force-yes install ${base_packages}
|
||||||
apt-get --yes --force-yes purge ${purge_packages}
|
apt-get --yes --force-yes purge ${purge_packages}
|
||||||
apt-get --yes --force-yes autoremove
|
apt-get --yes --force-yes autoremove
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
|
rm -f /debconf.set
|
||||||
|
rm -f /etc/ssh/ssh_host_*
|
||||||
|
rm -f /root/.bash_history
|
||||||
|
echo "1" > .keep
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,19 +113,6 @@ bootstrap_tar_pack() {
|
||||||
req=(bootstrap_tgz)
|
req=(bootstrap_tgz)
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
#for i in $custmodules;do sudo sed -i -e '/'$i'/d' $strapdir/etc/modules;done
|
|
||||||
#[[ -n $inittab ]] && sudo sed -i -e '/'$inittab'/d' $strapdir/etc/inittab
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee ${strapdir}/prepack >/dev/null
|
|
||||||
#!/bin/sh
|
|
||||||
#apt-get --yes --force-yes purge ${extra_packages}
|
|
||||||
apt-get --yes --force-yes autoremove
|
|
||||||
apt-get clean
|
|
||||||
rm -f /prepack
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chroot-script prepack || zerr
|
|
||||||
|
|
||||||
local _dest=$(dirname $bootstrap_tgz)
|
local _dest=$(dirname $bootstrap_tgz)
|
||||||
|
|
||||||
if [[ -f $bootstrap_tgz ]]; then
|
if [[ -f $bootstrap_tgz ]]; then
|
||||||
|
|
@ -163,12 +137,15 @@ bootstrap_tar_unpack() {
|
||||||
req=(unpath bootstrap_tgz)
|
req=(unpath bootstrap_tgz)
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
[[ -f ${unpath}/.done ]] || {
|
if [[ -f ${unpath}/.keep ]]; then
|
||||||
mkdir -p ${unpath}
|
mkdir -p ${unpath}
|
||||||
silly
|
silly
|
||||||
sudo tar xfp $bootstrap_tgz -C ${unpath}
|
sudo tar xfp $bootstrap_tgz -C ${unpath}
|
||||||
sudo mkdir -p ${unpath}/{boot,dev,sys,proc}
|
sudo mkdir -p ${unpath}/{boot,dev,sys,proc}
|
||||||
}
|
else
|
||||||
|
error "no .keep file found. exiting..."
|
||||||
|
zerr
|
||||||
|
fi
|
||||||
|
|
||||||
cat <<EOF | sudo tee ${strapdir}/postunpack >/dev/null
|
cat <<EOF | sudo tee ${strapdir}/postunpack >/dev/null
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
@ -177,7 +154,6 @@ apt-get --yes --force-yes upgrade
|
||||||
apt-get --yes --force-yes install ${extra_packages}
|
apt-get --yes --force-yes install ${extra_packages}
|
||||||
apt-get --yes --force-yes autoremove
|
apt-get --yes --force-yes autoremove
|
||||||
apt-get clean
|
apt-get clean
|
||||||
rm -f /postunpack
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
devprocsys mount $strapdir
|
devprocsys mount $strapdir
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ build_iso_dist() {
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
notice "building complete iso image"
|
notice "building complete iso image"
|
||||||
|
## XXX: TODO: upstream existing heads code
|
||||||
|
|
||||||
bootstrap_complete_base || zerr
|
bootstrap_complete_base || zerr
|
||||||
[[ $BLEND = 1 ]] && blend_preinst || zerr
|
[[ $BLEND = 1 ]] && blend_preinst || zerr
|
||||||
|
|
@ -85,10 +86,7 @@ build_vagrant_dist() {
|
||||||
|
|
||||||
getfield() {
|
getfield() {
|
||||||
fn getfield $*
|
fn getfield $*
|
||||||
|
print "$1" | grep "^$2=" | sed -e 's:.*=\(.*\)$:\1:g' | sed -e 's:^"\(.*\)"$:\1:g'
|
||||||
echo "$1" | grep "^$2=" | \
|
|
||||||
sed -e 's:.*=\(.*\)$:\1:g' | \
|
|
||||||
sed -e 's:^"\(.*\)"$:\1:g'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
devprocsys() {
|
devprocsys() {
|
||||||
|
|
@ -154,7 +152,6 @@ dpkg-divert --add --local \
|
||||||
cp /bin/true /usr/sbin/invoke-rc.d
|
cp /bin/true /usr/sbin/invoke-rc.d
|
||||||
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
||||||
chmod +x /usr/sbin/policy-rc.d
|
chmod +x /usr/sbin/policy-rc.d
|
||||||
rm -f /dpkgdivert
|
|
||||||
EOF
|
EOF
|
||||||
elif [[ $watdo = off ]]; then
|
elif [[ $watdo = off ]]; then
|
||||||
cat <<EOF | sudo tee ${werdo}/dpkgdivert >/dev/null
|
cat <<EOF | sudo tee ${werdo}/dpkgdivert >/dev/null
|
||||||
|
|
@ -162,7 +159,6 @@ EOF
|
||||||
rm -f /usr/sbin/policy-rc.d
|
rm -f /usr/sbin/policy-rc.d
|
||||||
rm -f /usr/sbin/invoke-rc.d
|
rm -f /usr/sbin/invoke-rc.d
|
||||||
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
||||||
rm -f /dpkgdivert
|
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -205,7 +201,7 @@ install-custdebs() {
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
sudo mkdir -p $strapdir/debs
|
sudo mkdir -p $strapdir/debs
|
||||||
sudo ${=cp} $R/extra/custom-packages/*.deb $strapdir/debs/
|
sudo cp $R/extra/custom-packages/*.deb $strapdir/debs/
|
||||||
|
|
||||||
cat <<EOF | sudo tee ${strapdir}/install-debs >/dev/null
|
cat <<EOF | sudo tee ${strapdir}/install-debs >/dev/null
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
@ -215,7 +211,7 @@ for deb in /debs/*.deb; do
|
||||||
done
|
done
|
||||||
apt-get autoremove
|
apt-get autoremove
|
||||||
apt-get clean
|
apt-get clean
|
||||||
rm -rf /debs install-debs
|
rm -rf /debs
|
||||||
EOF
|
EOF
|
||||||
chroot-script install-debs
|
chroot-script install-debs
|
||||||
}
|
}
|
||||||
|
|
@ -228,17 +224,19 @@ chroot-script() {
|
||||||
local script="$2"
|
local script="$2"
|
||||||
dpkgdivert on "$strapdir"
|
dpkgdivert on "$strapdir"
|
||||||
notice "chrooting to execute $script..."
|
notice "chrooting to execute $script..."
|
||||||
sudo -E chmod +x "$strapdir/$script" || zerr
|
sudo chmod +x "$strapdir/$script" || zerr
|
||||||
sudo -E chroot "$strapdir" "/$script" || zerr
|
sudo -E chroot "$strapdir" "/$script" || zerr
|
||||||
dpkgdivert off "$strapdir"
|
dpkgdivert off "$strapdir"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
local script="$1"
|
local script="$1"
|
||||||
notice "chrooting to execute $script..."
|
notice "chrooting to execute $script..."
|
||||||
sudo -E chmod +x "$strapdir/$script" || zerr
|
sudochmod +x "$strapdir/$script" || zerr
|
||||||
sudo -E chroot "$strapdir" "/$script" || zerr
|
sudo -E chroot "$strapdir" "/$script" || zerr
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
sudo rm -f $strapdir/$script
|
||||||
}
|
}
|
||||||
|
|
||||||
silly() {
|
silly() {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -132,10 +132,6 @@ image_raw_mount() {
|
||||||
req=(workdir bootpart rootpart)
|
req=(workdir bootpart rootpart)
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
#mkdir -p $workdir/boot $workdir/root
|
|
||||||
#sudo mount $bootpart $workdir/boot && act "mounted boot partition" || zerr
|
|
||||||
#sudo mount $rootpart $workdir/root && act "mounted root partition" || zerr
|
|
||||||
|
|
||||||
mkdir -p $workdir/mnt
|
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 mkdir $workdir/mnt/boot
|
||||||
|
|
@ -160,14 +156,14 @@ image_raw_as_strapdir() {
|
||||||
pushd "$workdir"
|
pushd "$workdir"
|
||||||
|
|
||||||
notice "creating raw image of $size MB"
|
notice "creating raw image of $size MB"
|
||||||
sudo -E rm -f base.raw
|
sudo rm -f base.raw
|
||||||
sudo -E qemu-img create -f raw base.raw ${size}M
|
sudo qemu-img create -f raw base.raw ${size}M || zerr
|
||||||
notice "partitioning"
|
notice "partitioning"
|
||||||
sudo -E parted base.raw mktable msdos
|
sudo parted base.raw mktable msdos || zerr
|
||||||
sudo -E parted base.raw mkpart primary '0%' '100%'
|
sudo parted base.raw mkpart primary '0%' '100%' || zerr
|
||||||
loopdevice=$(losetup --find)
|
loopdevice=$(losetup --find)
|
||||||
sudo -E losetup -P $loopdevice base.raw
|
sudo losetup -P $loopdevice base.raw || zerr
|
||||||
sudo -E mkfs.ext4 ${loopdevice}p1
|
sudo mkfs.ext4 ${loopdevice}p1 || zerr
|
||||||
|
|
||||||
notice "mounting raw image to strapdir"
|
notice "mounting raw image to strapdir"
|
||||||
sudo mount ${loopdevice}p1 $strapdir
|
sudo mount ${loopdevice}p1 $strapdir
|
||||||
|
|
|
||||||
13
zlibs/iso
13
zlibs/iso
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -34,7 +34,6 @@ apt-get update
|
||||||
apt-get --yes --force-yes install dialog live-boot
|
apt-get --yes --force-yes install dialog live-boot
|
||||||
apt-get --yes --force-yes autoremove
|
apt-get --yes --force-yes autoremove
|
||||||
apt-get clean
|
apt-get clean
|
||||||
rm -f /isoprep
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chroot-script -d isoprep || zerr
|
chroot-script -d isoprep || zerr
|
||||||
|
|
@ -50,12 +49,12 @@ iso_setup_isolinux() {
|
||||||
pushd $workdir
|
pushd $workdir
|
||||||
sudo mkdir -p binary/{live,isolinux}
|
sudo mkdir -p binary/{live,isolinux}
|
||||||
act "copying kernel and initrd"
|
act "copying kernel and initrd"
|
||||||
sudo ${=cp} $strapdir/boot/vmlinuz* binary/live/vmlinuz
|
sudo cp $strapdir/boot/vmlinuz* binary/live/vmlinuz
|
||||||
sudo ${=cp} $strapdir/boot/initrd* binary/live/initrd
|
sudo cp $strapdir/boot/initrd* binary/live/initrd
|
||||||
|
|
||||||
sudo ${=cp} /usr/share/live/build/bootloaders/isolinux/isolinux.bin \
|
sudo cp /usr/share/live/build/bootloaders/isolinux/isolinux.bin \
|
||||||
binary/isolinux
|
binary/isolinux
|
||||||
sudo ${=cp} /usr/share/live/build/bootloaders/isolinux/*.c32 \
|
sudo cp /usr/share/live/build/bootloaders/isolinux/*.c32 \
|
||||||
binary/isolinux
|
binary/isolinux
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
@ -121,7 +120,7 @@ iso_setup_installer() {
|
||||||
fn iso_setup_installer
|
fn iso_setup_installer
|
||||||
|
|
||||||
notice "setting up devuan-installer"
|
notice "setting up devuan-installer"
|
||||||
sudo ${=cp} $R/extra/installer/* $strapdir/
|
sudo cp $R/extra/installer/* $strapdir/
|
||||||
|
|
||||||
## TODO: init to script
|
## TODO: init to script
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
build_kernel_amd64() {
|
build_kernel_amd64() {
|
||||||
fn build_kernel_amd64
|
fn build_kernel_amd64
|
||||||
req=(strapdir arch)
|
req=(strapdir arch)
|
||||||
#freq=($strapdir/.done)
|
#freq=($strapdir/.keep)
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
local kernel_base="linux-image"
|
local kernel_base="linux-image"
|
||||||
|
|
@ -43,7 +43,7 @@ build_kernel_amd64() {
|
||||||
build_kernel_i386() {
|
build_kernel_i386() {
|
||||||
fn build_kernel_i386
|
fn build_kernel_i386
|
||||||
req=(strapdir arch)
|
req=(strapdir arch)
|
||||||
#freq=($strapdir/.done)
|
#freq=($strapdir/.keep)
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
local kernel_base="linux-image"
|
local kernel_base="linux-image"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# Copyright (c) 2016 Dyne.org Foundation
|
# Copyright (c) 2016-2017 Dyne.org Foundation
|
||||||
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
# libdevuansdk is maintained by Ivan J. <parazyd@dyne.org>
|
||||||
#
|
#
|
||||||
# This file is part of libdevuansdk
|
# This file is part of libdevuansdk
|
||||||
|
|
|
||||||
27
zlibs/vm
27
zlibs/vm
|
|
@ -18,10 +18,6 @@
|
||||||
# along with this source code. If not, see <http://www.gnu.org/licenses/>.
|
# along with this source code. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
## ma baker
|
## ma baker
|
||||||
#
|
|
||||||
# deps:
|
|
||||||
# virtualbox
|
|
||||||
# qemu-kvm
|
|
||||||
|
|
||||||
vars+=(vmname)
|
vars+=(vmname)
|
||||||
|
|
||||||
|
|
@ -39,9 +35,9 @@ vm_inject_overrides() {
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
sudo -E chmod +x $strapdir/etc/rc.local
|
sudo chmod +x $strapdir/etc/rc.local
|
||||||
|
|
||||||
print "rootfs / rootfs rw 0 0" | sudo -E tee ${strapdir}/etc/fstab >/dev/null
|
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 -e 's/without-password/yes/' ${strapdir}/etc/ssh/sshd_config || zerr
|
||||||
}
|
}
|
||||||
|
|
@ -52,7 +48,7 @@ vm_setup_grub() {
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
notice "setting up grub"
|
notice "setting up grub"
|
||||||
cat <<EOF | sudo -E tee ${strapdir}/setupgrub >/dev/null
|
cat <<EOF | sudo tee ${strapdir}/setupgrub >/dev/null
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
apt-get --yes --force-yes install linux-image-amd64 grub-pc
|
apt-get --yes --force-yes install linux-image-amd64 grub-pc
|
||||||
|
|
@ -60,9 +56,7 @@ sed -e 's:GRUB_TIMEOUT=5:GRUB_TIMEOUT=1:' -i /etc/default/grub
|
||||||
update-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
|
sed -e 's:${loopdevice}p1:/dev/sda1:g' -i /boot/grub/grub.cfg
|
||||||
sync
|
sync; sync; sync
|
||||||
sync
|
|
||||||
sync
|
|
||||||
EOF
|
EOF
|
||||||
devprocsys mount $strapdir || zerr
|
devprocsys mount $strapdir || zerr
|
||||||
chroot-script -d setupgrub || zerr
|
chroot-script -d setupgrub || zerr
|
||||||
|
|
@ -75,7 +69,7 @@ vm_umount_raw() {
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
notice "remounting raw image"
|
notice "remounting raw image"
|
||||||
sudo -E mount -o remount,ro $strapdir || zerr
|
sudo mount -o remount,ro $strapdir || zerr
|
||||||
sync
|
sync
|
||||||
notice "flushing bytes and buffers"
|
notice "flushing bytes and buffers"
|
||||||
sudo blockdev --flushbufs $loopdevice || zerr
|
sudo blockdev --flushbufs $loopdevice || zerr
|
||||||
|
|
@ -99,8 +93,8 @@ vm_vbox_setup() {
|
||||||
|
|
||||||
notice "converting raw image to vdi"
|
notice "converting raw image to vdi"
|
||||||
pushd $workdir
|
pushd $workdir
|
||||||
sudo -E qemu-img convert -f raw -O vdi base.raw base.vdi || zerr
|
sudo qemu-img convert -f raw -O vdi base.raw base.vdi || zerr
|
||||||
sudo -E chown $USER base.vdi || zerr
|
sudo chown $USER base.vdi || zerr
|
||||||
VBoxManage modifyhd base.vdi --type immutable --compact || zerr
|
VBoxManage modifyhd base.vdi --type immutable --compact || zerr
|
||||||
act "removing old raw image"
|
act "removing old raw image"
|
||||||
rm -f base.raw
|
rm -f base.raw
|
||||||
|
|
@ -151,7 +145,7 @@ EOF
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
notice "actually packaging..."
|
notice "actually packaging..."
|
||||||
vagrant package --base "$vmname" --output devuanbox.box --include metadata.json --vagrantfile Vagrantfile || zerr
|
vagrant package --base "$vmname" --output ${vm_name}.box --include metadata.json --vagrantfile Vagrantfile || zerr
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -162,10 +156,11 @@ vm_pack_dist() {
|
||||||
|
|
||||||
notice "packing up dist"
|
notice "packing up dist"
|
||||||
mkdir -p $R/dist
|
mkdir -p $R/dist
|
||||||
mv $workdir/devuanbox.box $R/dist/
|
mv $workdir/${vm_name}.box $R/dist
|
||||||
act "calculating sha256sum..."
|
act "calculating sha256sum..."
|
||||||
silly
|
silly
|
||||||
sha256sum $R/dist/devuanbox.box > $R/dist/devuanbox.box.sha
|
sha256sum $R/dist/${vm_name}.box > $R/dist/${vm_name}.box.sha
|
||||||
|
# TODO: XXX: cleanup vagrant/virtualbox leftovers
|
||||||
notice "done!"
|
notice "done!"
|
||||||
ls -1 $R/dist
|
ls -1 $R/dist
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue