Browse Source

Cleanup SDK page

- There's no cloud: only other people's computers
- Add abbreviation tags for A11y
- Link to VirtualBox, Packer, and Vagrant
- Other minor editorial fixes
revert-177e550a
hellekin 7 years ago
parent
commit
437055bce5
  1. 180
      source/pages/os/development-kit.en.html.md

180
source/pages/os/development-kit.en.html.md

@ -1,5 +1,5 @@
---
title: Devuan Developer Kit
title: Devuan SDK
topic_id: 146
---
@ -13,29 +13,34 @@ maintainers to:
- verify and stage modifications
- include modifications into new installers
- toast new embedded images for popular devices
- pack new virtual machine images for cloud
- pack new virtual machine images ready for deployment
The Devuan SDK is a fresh take to old and new tasks, it is modular and
act as a sort of interactive shell extension based on ZSh, exposing
functions that become shell commands but can also be lined up in
scripts. Most of the code of the SDK is made with functional
programming in mind with a few global states being changed, basically
offering a REPL experience for automated steps.
The Devuan <abbr title="Simple Development Kit">SDK</abbr> is a fresh
take to old and new tasks, it is modular and act as a sort of
interactive shell extension based on <abbr title="Z Shell">ZSh</abbr>,
exposing functions that become shell commands but can also be lined up
in scripts. Most of the code of the <abbr>SDK</abbr> is made with
functional programming in mind with a few global states being changed,
basically offering a <abbr title="Read Eval Print Loop">REPL</abbr>
experience for automated steps.
So far there are three main modules for the sdk ( _WORK IN PROGRESS_ ! )
So far there are three main modules for the <abbr>SDK</abbr> (_WORK IN
PROGRESS_!):
- [devuan-sdk](https://git.devuan.org/devuan/devuan-sdk) (chroot and package builds, substitutes cowbuilder)
- [vm-sdk](https://git.devuan.org/devuan/vm-sdk) (virtual image builds for cloud computing platforms)
- [arm-sdk](https://git.devuan.org/devuan/arm-sdk) (embedded device image builds, including kernel patches)
- [devuan-sdk](https://git.devuan.org/devuan/devuan-sdk) (chroot and
package builds, substitutes cowbuilder)
- [vm-sdk](https://git.devuan.org/devuan/vm-sdk) (virtual image builds)
- [arm-sdk](https://git.devuan.org/devuan/arm-sdk) (embedded device
image builds, including kernel patches)
The Devuan SDK was 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 <abbr>SDK</abbr> was 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.
## Devuan-sdk :: chroot and package builds
## Devuan-SDK :: chroot and package builds
This SDK is designed to be used interactively from a terminal as well
from shell scripts.
This <abbr>SDK</abbr> is designed to be used interactively from a
terminal as well as from shell scripts.
Using Debian or Ubuntu, install the following packages:
@ -46,31 +51,35 @@ gcc-arm-none-eabi parted kpartx qemu-user-static pinthread sudo
Please note that:
- `dpkg-dev` may be called `dpkg` or `dpkg-devtools` on other systems like Arch and Parabola.
- `pinthread` is Devuan software and may not exist in other distros
- `sudo` is used to elevate the sdk user to superuser privileges and should be configured accordingly
- `dpkg-dev` may be called `dpkg` or `dpkg-devtools` on other systems
like Arch and Parabola.
- `pinthread` is Devuan software and may not exist in other
distributions.
- `sudo` is used to elevate the <abbr>SDK</abbr> user to superuser
privileges and should be configured accordingly.
### Quick start
This is a quick guide to build a Devuan ISO from it sources using our
SDK, it will require approximatel 4GB space and an Internet
connection. This guide is not meant for people willing to use Devuan,
but for package maintainers and Devuan developers.
This is a quick guide to build a Devuan ISO image from it sources using
our <abbr>SDK</abbr>, it will require approximatel 4GB space and an
Internet connection. This guide is not meant for people willing to use
Devuan, but for package maintainers and Devuan developers.
First clone the SDK repository:
First clone the <abbr>SDK</abbr> repository:
~~~
git clone https://git.devuan.org/devuan/devuan-sdk.git
~~~
Then run ZSh. In case you have conflicting extensions on your zsh
configuration, it may be needed to run from a vanilla one, using:
Then run <abbr>ZSh</abbr>. In case you have conflicting extensions on
your <abbr>zsh</abbr> configuration, it may be needed to run from a
vanilla one, using:
~~~
zsh --no-rcs
~~~
then step inside the sdk, "source" it:
Then step inside the <abbr>SDK</abbr>, and "source" it:
~~~
cd devuan-sdk
@ -78,21 +87,23 @@ cd devuan-sdk
source sdk
~~~
then initialise it (needs to be done only the first time)
If this is the first time you run it, initialize the <abbr>SDK</abbr>:
~~~
sdk-init
~~~
from inside the sdk environment is possible to tab-complete available public commands using `sdk-[tab]`.
Command tab-completion is available within the <abbr>SDK</abbr>:
`sdk-<tab>` will show the available public commands.
### Chroot build
To proceed further we need to build our software packages and toast
them into an installer iso. First of all, choose the architecture for
To proceed further we need to build our software packages and toast them
into an installer ISO image. First of all, choose the architecture for
which we are building. One can choose between `amd64` or `i386` or
`armhf` or other architectures.
`armhf` or other architectures (type `sdk-chroot-arch` without arguments
to see the complete list.)
~~~
sdk-chroot-arch i386
@ -102,9 +113,9 @@ sdk-chroot-build
Beware, this will take long.
Consider a single SDK can create more than one chroot for multiple
architectures and they keep existing between builds.
Switching is done via `sdk-chroot-arch`.
Consider a single <abbr>SDK</abbr> can create more than one chroot for
multiple architectures and they keep existing between builds. Switching
is done via `sdk-chroot-arch`.
### ISO build
@ -117,7 +128,7 @@ and not live CDs.
seed xfce
~~~
Then toast the iso automatically using:
Then toast the ISO image automatically using:
~~~
auto-iso
@ -126,21 +137,28 @@ auto-iso
Which will download a Debian iso as template and change it to become a
systemd-free Devuan.
Pretty easy no? This is the basic usage. SDK has also functions to
locally compile the packages into schroot of various architectures and
even serve the results locally as an apt repository over http, to
Pretty easy no? This is the basic usage. <abbr>SDK</abbr> also has
functions to locally compile the packages into schroot of various
architectures and even serve the results locally as an apt repository
over <abbr title="HyperText Transport Protocol">HTTP</abbr>, to
facilitate local testing.
For more information see: [`devuan-sdk`](https://git.devuan.org/devuan/devuan-sdk).
For more information, source code, and issues, see:
[`devuan-sdk`](https://git.devuan.org/devuan/devuan-sdk).
## vm-sdk :: bakes an iso into VMs
To operate vm-sdk the following upstream applications must be installed:
To operate `vm-sdk` the following upstream applications must be
installed:
- [VirtualBox] 5.0 or greater
- [Packer] 0.10 or greater
- [Vagrant] 1.7 or greater
- VirtualBox 5.0 or greater
- Packer 0.10 or greater
- Vagrant 1.7 or greater
[VirtualBox]: http://www.virtualbox.org/
[Packer]: https://www.packer.io/
[Vagrant]: http://vagrantup.com/
Plus the following packages:
@ -158,9 +176,9 @@ INST=${INST:-netboot}
VERSION=${VERSION:-beta}
~~~
#### Operation flow
### Operation flow
Load the SDK environment in ZSh
Load the <abbr>SDK</abbr> environment in <abbr>ZSh</abbr>
~~~
zsh -f
@ -187,7 +205,9 @@ At this point packer has images ready to be added into the local vagrant box
vagrant_setup
~~~
At this point in $pub will be present a .box file with the vagrant box ready. Also the local vagrant repository will have a box ready for use, which can be run from the local vagrant directory created for it.
At this point in `$pub` will be present a .box file with the vagrant box
ready. Also the local vagrant repository will have a box ready for use,
which can be run from the local vagrant directory created for it.
~~~
cd vagrant_$SUITE_$VERSION_$ARCH
@ -195,14 +215,16 @@ vagrant up
vagrant ssh
~~~
From inside the system is possible to make changes that will affect
the export. To export a Qemu image (qcow2) inside pub with codename opennebula
From inside the system is possible to make changes that will affect the
export. To export a Qemu image (qcow2) inside pub with codename
opennebula
~~~
vagrant_to_qcow2 opennebula
~~~
Use the normal Vagrant command to reset any change, then create a new one:
Use the normal Vagrant command to reset any change, then create a new
one:
~~~
vagrant destroy
@ -214,33 +236,36 @@ Each function returns 1 on any error, 0 on success.
## arm-sdk :: toolkit for various ARM embedded devices
ARM SDK is a build system used to toast OS images for ARM devices.
ARM <abbr>SDK</abbr> is a build system used to toast <abbr
title="Operating System">OS</abbr> images for ARM devices.
### Requirements
This SDK is designed to be used interactively from a terminal as well
from shell scripts.
This <abbr>SDK</abbr> is designed to be used interactively from a
terminal as well from shell scripts.
For a Debian-based OS, install the following packages:
For a Debian-based <abbr>OS</abbr>, install the following packages:
~~~
gnupg2 debootstrap curl rsync gcc-arm-none-eabi parted kpartx qemu-user-static sudo git-core parted gcc-multilib lib32z1 u-boot-tools device-tree-compiler cgpt xz-utils
gnupg2 debootstrap curl rsync gcc-arm-none-eabi parted kpartx \
qemu-user-static sudo git-core parted gcc-multilib lib32z1 u-boot-tools \
device-tree-compiler cgpt xz-utils
~~~
On any other, find the equivalents of the aforementioned packages.
### Quick start
First clone the SDK repository:
First clone the <abbr>SDK</abbr> repository:
~~~
; git clone https://github.com/dyne/arm-sdk.git
~~~
Edit the `config` file to match your crosscompile toolchain. Consult
`arm/README.md` if you're in a need of a precompiled one, then
run zsh. In case you have conflicting extensions on your zsh
configuration, safest way would be to run a vanilla one, using:
`arm/README.md` if you're in a need of a precompiled one, then run
zsh. In case you have conflicting extensions on your zsh configuration,
safest way would be to run a vanilla one, using:
~~~
; zsh -f
@ -252,8 +277,8 @@ then step inside the sdk, "source" it:
; cd arm-sdk && source sdk
~~~
Now is the time you choose the device and OS you want to build the image for. Currently
you can choose between these distros:
Now is the time you choose the device and OS you want to build the image
for. Currently you can choose between these distros:
* `devuan`
@ -277,8 +302,9 @@ For more info, please consult the `README` included in the `arm` subdirectory.
### Configuration
Edit the `config` file included in the root directory of arm-sdk to your liking.
If you are using a custom toolchain, add it to the PATH as described.
Edit the `config` file included in the root directory of arm-sdk to your
liking. If you are using a custom toolchain, add it to the PATH as
described.
## Acknowledgments
@ -286,22 +312,24 @@ The Devuan-SDK is Copyright (c) 2016 by the Dyne.org Foundation
and is designed, written and maintained by Jaromil
ARM SDK is designed, written and maintained by Parazyd
ARM <abbr>SDK</abbr> is designed, written and maintained by Parazyd
VM SDK is also designed by Jaromil
<abbr title="Virtual Machine">VM</abbr> <abbr>SDK</abbr> is also
designed by Jaromil
The ARM SDK also uses code from the Kali Linux ARM buildscripts.
The ARM <abbr>SDK</abbr> also uses code from the Kali Linux ARM
buildscripts.
This source code is free software; you can redistribute it and/or
modify it under the terms of the GNU Public License as published by
the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.
This source code is free software; you can redistribute it and/or modify
it under the terms of the GNU Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your
option) any later version.
This source code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
This source code 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. Please refer to
the GNU Public License for more details.
You should have received a copy of the GNU Public License along with
this source code; if not, write to: Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.
this source code; if not, write to: Free Software Foundation, Inc., 675
Mass Ave, Cambridge, MA 02139, USA.

Loading…
Cancel
Save