[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian based Filesystems with ELBE



Hi Neil,

> > we wrote some software to generate customized Debian rootfilesystem
> > images. The project is called ELBE and is available as open-source
> > (GPLv3) [1].
> 
> *Another debootstrap wrapper* ?? Please no.

no not just a debootstrap wrapper. It includes the functionality to
generate e.g. a sysroot for a cross-toolchain, licence files needed
to distribute the images. A lot of supported Image formats (cpio,
msdoshd, gpt, UBI, tar.gz, squashfs, ..), pbuilder integration,
update-checker based on the generated source.xml, update-generators
and daemons. ELBE is a kind of toolkit for developing and maintaining
Debian based target images, including self-developed applications.

The main focus of ELBE is to reproduce the same target image no
matter on which Debian Host PC it is running. You just need to archive
a single ISO file.

> > ELBE uses debootstrap, python-apt, qemu-user-static & chroot,
> > mtd-utils and python-parted to generate target images. Currently
> > amd64, armel, armhf and i386 are tested successfully.
> 
> There was a session at DebConf15 which identified about 15 existing
> wrappers that do much the same thing already.

Is the output of the session available? Which wrappers exist, what
features or intention do they have and where are they hosted?

> > I'm quite sure, a lot of people wrote scripts for doing this.
> 
> ... and packages already in Debian.

We didn't find one, as we started with this in 2007. But of course
we would also like to have the elbe packages in Debian.

> > To ensure that the same target image can be generated again, the
> > target image generation is done in a defined Debian installation,
> > typically running in KVM. We call this machine 'initvm'. The
> > installation of the initvm is automated by a generated preseeding for
> > the debian-installer. Multiple target images can be generated on the
> > same initvm.
> > 
> > To generate the target image, that is described by [2] just type:
> > 
> > $ elbe initvm create x86_64-pc-hdimg-minimal-grub-jessie.xml
> 
> ... or create config for one of the existing packages - my own
> recommendation would be vmdebootstrap - it has QEMU/multiple arch
> support.

I didn't know about vmdebootstrap and just had a quick look at the source.

Please correct me if i'm wrong.

A lot of the code looks very familiar for me (elbe is also written in
python). It covers more or less the featureset of the 'elbe buildchroot'
command [0]. However I see limitations in vmdebootstrap regarding supported
Image formats, multiple mirrors, incremental runs (just add a single package
and regenarate the images). However on the other hand a lot of the code is more
or less the same (e.g. grub-install, creating partitions).

The big difference between 'elbe buildchroot' and 'vmdebootstrap' is the
user interface. vmdebootstrap works with a lot of parameters and shell scripts.
'elbe buildchroot' passes the same information in a single XML file.

I see the potential to merge the sourc of both projects. We could integrate
the additional functionalities from 'elbe buildchroot' into vmdebootstrap and
just call this from our code. Or vmdebootstrap can be just another frontend
to elbepack/elbeproject.py (that is currently part of the elbe-common debian
binary package).

Or integrate the additional functionality of 'elbe buildchroot' into
vmdebootstrap source and generate a python-vmdebootstap module both and
perhaps some other projects can use.

Regards,
  Manuel

[0] https://github.com/Linutronix/elbe/blob/master/docs/elbe-buildchroot.txt


Reply to: