commit bd92e5d9f9ab5c2c358e26d3c84a23b6d76d6e4e
parent 64c649a9aad6011351002426559ecae1ffc6bed4
Author: parazyd <parazyd@dyne.org>
Date: Mon, 13 Feb 2017 13:48:41 +0100
initial import
Diffstat:
A | .gitmodules | | | 3 | +++ |
A | lib/libdevuansdk | | | 1 | + |
A | sdk | | | 99 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | vm-sdk | | | 44 | -------------------------------------------- |
4 files changed, 103 insertions(+), 44 deletions(-)
diff --git a/.gitmodules b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "lib/libdevuansdk"]
+ path = lib/libdevuansdk
+ url = https://git.devuan.org/sdk/libdevuansdk.git
diff --git a/lib/libdevuansdk b/lib/libdevuansdk
@@ -0,0 +1 @@
+Subproject commit 0cfdec721fcddd47980673b2c341c28f225c7206
diff --git a/sdk b/sdk
@@ -0,0 +1,99 @@
+#!/usr/bin/env zsh
+# Copyright (c) 2016-2017 Dyne.org Foundation
+# vm-sdk is written and maintained by Ivan J. <parazyd@dyne.org>
+#
+# This file is part of vm-sdk
+#
+# This source code is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This software is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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/>.
+
+vmsdk_version="0.2"
+
+R=${VM_SDK:-$PWD}
+
+DEBUG=0
+QUIET=0
+
+source $R/lib/zuper/zuper
+
+## global vars
+vars+=(vmsdk_version)
+vars+=(R workdir strapdir)
+vars+=(os oslib blendlib)
+vars+=(MAKEOPTS)
+
+## global arrs
+arrs+=(extra_packages)
+
+## global maps
+maps+=(board_map os_map blend_map)
+
+source $R/config
+source $R/lib/helpers
+
+## conclude zuper initialization
+source $R/lib/zuper/zuper.init
+
+load() {
+ fn load "$@"
+ os="$1"
+ dev="$2"
+ blend="$3"
+ req=(os dev)
+ ckreq || return 1
+
+ ## initialize binfmt_misc if not already, needed to run qemu
+ #if [[ -f /etc/init.d/binfmt-support ]]; then
+ # sudo /etc/init.d/binfmt-support restart
+ #else
+ # [[ -d /proc/sys/fs/binfmt_misc ]] \
+ # || sudo modprobe binfmt_misc
+ # [[ -f /proc/sys/fs/binfmt_misc/register ]] \
+ # || sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
+ #fi
+
+ os_map=(
+ "devuan" "$R/lib/libdevuansdk/libdevuansdk"
+ )
+
+ oslib="${os_map[$os]}"
+ blendlib="${blend_map[$blend]}"
+
+ [[ $blendlib =~ '^http' ]] && {
+ notice "grabbing blend from the internetz"
+ pushd $R/extra/blends
+ curl -Ls -O $blendlib
+ popd
+ blendlib="$R/extra/blends/$(basename $blendlib)"
+ }
+
+ [[ -f $oslib ]] || { die "no valid distro specified"; exit 1 }
+ [[ -f $blendlib ]] || { warn "no valid blend specified" }
+
+ source $oslib
+ [[ -f $blendlib ]] && source $blendlib && act "$os blend loaded" && export BLEND=1
+
+ workdir="$R/tmp/${os}-${arch}-build"
+ strapdir="$workdir/bootstrap"
+ ${=mkdir} -p $strapdir
+
+ export LANG=C
+ export LC_ALL=C
+
+ source $R/lib/zuper/zuper.init
+}
+
+TRAPZERR() { zerr; return $? }
+
+notice "vm-sdk loaded"
+export PROMPT="%F{yellow}%(?..%? )%{$reset_color%}vmsdk@%{$fg[red]%}%m %{$reset_color%} %{$fg[blue]%}%#%{$fg_bold[blue]%}%{$reset_color%} "
diff --git a/vm-sdk b/vm-sdk
@@ -1,44 +0,0 @@
-#!/usr/bin/env zsh
-
-
-scope=vm-sdk
-
-SDK_LIB=../libdevuansdk
-SDK_BLENDS=../devuan-sdk-blends
-
-pushd $SDK_LIB
-source libdevuansdk
-popd
-
-pushd $SDK_BLENDS
-source $SDK_BLENDS/
-
-source
-R=`pwd`
-H=`pwd`
-E=`pwd`
-
-
-vm_sdk_init(){
-
- fn vm_sdk_init $@
-
- project_file=${1:-projects/devuan-jessie-latest-amd64-qcow2}
- act "$scope: using project file ::1 file:: " ${project_file}
- source ${project_file}
- sdk_init
-}
-
-vm_sdk_init
-
-# example workflow:
-
-# 1st stage
-bootstrap amd64
-kernel_x86_install_default
-
-# 2nd stage
-blend #install opennebula.deb
-
-# 3rd stage
-#qemu_make_img