Contribution-oriented fork for parabola-vmbootstrap
Go to file
2018-02-02 06:50:58 +01:00
src creation script adapted to use parabola release tarballs 2018-02-02 06:50:58 +01:00
.gitignore fixing parallel invocations of start.sh 2018-01-02 08:11:37 +01:00
COPYING applying GPL 2017-12-31 22:58:55 +01:00
create.sh creation script adapted to use parabola release tarballs 2018-02-02 06:50:58 +01:00
make_tarball.sh creation script adapted to use parabola release tarballs 2018-02-02 06:50:58 +01:00
README creation script adapted to use parabola release tarballs 2018-02-02 06:50:58 +01:00
start.sh booting linux-libre 2018-02-01 12:20:31 +01:00

parabola-arm-imagebuilder
=========================

image creation
--------------

this is a collection of scripts creating parabola arm images for use with qemu
with the original goal of building parabola arm packages on these machines.
Development focus has since shifted towards creating parabola-arm release
tarballs.

to create a new virtual machine image, run
  $> sudo ./create.sh

by default, the creation script will perform a full bootstrap, installing an
archlinuxarm release tarball and migrating the installed system to parabola
in-place. This behaviour can be changed by setting the environment variable
NOBOOTSTRAP to 1:

  $> sudo NOBOOTSTRAP=1 ./create.sh

In this case, a parabola arm release tarball is used instead.

optionally, to create a new virtual machine with a packaging environment, set
the environment variable DEVSETUP to 1:

  $> sudo DEVSETUP=1 ./create.sh

The packaging environment setup script makes use of several files and packages
present on already setup parabola development machines. if your setup is
different, you might have to modify src/stage3.sh accordingly.

Places the scripts check the host machine for configuration files are:
  /etc/makepkg.conf - for PACKAGER and GPGKEY
  ~/.gnupg ~/.ssh ~/.gitconfig - copied verbatim to the VM

The scripts assume that the following programs are available and in $PATH:
  qemu-img, qemu-system-arm
  wget
  parted
  mkfs.vfat, mkfs.ext4, mkswap
  bsdtar
  scp, ssh, ssh-keygen
  pacman

The scripts also assume that you like vim :)

virtual machine start
---------------------

to open a shell into the created machine, run
  $> ./start.sh [path to created image]

the start.sh script assumes that you want a throwaway session, so it will start
the virtual machine in snapshot mode and drop you into an ssh session. Once you
exit that session, the machine is shutdown and changes made to the image are
discarded. This behavior can be changed using the following environment
variables:

  FOREGROUND : set this to 1 to start a qemu serial connection instead of a ssh
               session. Useful to capture boot output.

  PERSISTENT : set this to 1 to make persistent changes to the image that are
               not discarded on shutdown.

The username and password for the created image is parabola:parabola, or
root:parabola respectively. If a packaging environment is setup, the system is
configured for passwordless sudo for the parabola user and the package tree and
a build chroot are prepared. have fun. also check out the .bashrc of the
parabola user in the created virtual machine, for batch build integration based
on task-spooler.

tarball creation
----------------

to create a tarball from the created vm image, run

  $> sudo ./make_tarball.sh [path to created image]

the tarball creation script assumes to operate on an image *without* packaging
environment setup and will not perform additional cleanup operations if used on
the wrong image. Things that are cleaned up are:

  /root/.ssh
  /etc/ssh/ssh_host_*
  /etc/pacman.d/gnupg
  /var/log/*
  /var/cache/*
  /lost+found