The DECODE OS for private, distributed P2P computing
Go to file
Jaromil d12f104cd6 latest vm-sdk for path in prompt 2017-07-18 20:32:35 +02:00
vm-sdk@a33f5be342 latest vm-sdk for path in prompt 2017-07-18 20:32:35 +02:00
.gitmodules changed module to point to github 2017-07-18 15:42:14 +02:00
LICENSE add initial progress on the build system 2017-07-17 17:04:11 +02:00
README.md package configuration and small improvements 2017-07-18 20:23:19 +02:00
config package configuration and small improvements 2017-07-18 20:23:19 +02:00
console.sh package configuration and small improvements 2017-07-18 20:23:19 +02:00
decode.blend add initial progress on the build system 2017-07-17 17:04:11 +02:00

README.md

DECODE OS - build system

DECODE's operating system is designed to run a DECODE NODE that automatically connects to DECODE's P2P network and executes smart rules according to authenticated entitlements on attributes.

For stable releases see https://files.dyne.org/decode

Requirements

A GNU/Linux system is required in order to build DECODE OS.

Here a list of package dependencies:

zsh debootstrap sudo kpartx cgpt xz-utils qemu qemu-utils

In addition one must install vagrant and virtualbox from latest published packages (do not use distro provided packages, as they are updated).

Getting started

To enter the build console just run ./console.sh.

To build a vagrant virtual machine, run build_vagrant_dist.

To build a live iso image, run build_iso_dist.

To build an ARM installer image, run build_image_dist.

Here below the sequences of build steps executed by each target:

build_image_dist() {
	bootstrap_complete_base            || { zerr; wrapup }
	blend_preinst                      || { zerr; wrapup }
	image_prepare_raw                  || { zerr; wrapup }
	image_partition_raw_${parted_type} || { zerr; wrapup }
	build_kernel_${arch}               || { zerr; wrapup }
	blend_postinst                     || { zerr; wrapup }
	rsync_to_raw_image                 || { zerr; wrapup }
	image_pack_dist                    || { zerr; wrapup }
}

build_iso_dist() {
	bootstrap_complete_base || { zerr; wrapup }
	blend_preinst           || { zerr; wrapup }
	iso_prepare_strap       || { zerr; wrapup }
	build_kernel_${arch}    || { zerr; wrapup }
	iso_setup_isolinux      || { zerr; wrapup }
	iso_write_isolinux_cfg  || { zerr; wrapup }
	blend_postinst          || { zerr; wrapup }
	fill_apt_cache          || { zerr; wrapup }
	iso_squash_strap        || { zerr; wrapup }
	iso_xorriso_build       || { zerr; wrapup }
}

build_vagrant_dist() {
	image_${imageformat}_as_strapdir   || { zerr; wrapup }
	bootstrap_complete_base            || { zerr; wrapup }
	vm_inject_overrides                || { zerr; wrapup }
	blend_preinst                      || { zerr; wrapup }
	vm_setup_grub                      || { zerr; wrapup }
	blend_postinst                     || { zerr; wrapup }
	vm_umount_${imageformat}           || { zerr; wrapup }
	vm_vbox_setup                      || { zerr; wrapup }
	vm_vagrant_package                 || { zerr; wrapup }
	vm_pack_dist                       || { zerr; wrapup }
}

The build_vagrant_dist target is a helper that executes a sequence of steps, some of them common to other helpers (hence combinable). Here below the full list of build steps executed by build_vagrant_dist

Acknowledgments

The Devuan SDK used to build the DECODE OS was originally conceived during a period of residency at the Schumacher college in Dartington, UK. Greatly inspired by the laborious and mindful atmosphere of its wonderful premises.

The Devuan SDK is Copyright (c) 2015-2017 by the Dyne.org Foundation

Devuan SDK components were designed, and are written and maintained by:

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/.