ELBE XML Reference¶
RootFileSystem type: rfs:RootFileSystemType¶
describes one elbe project. An elbe project contains the creation of abuild environemt and the definition of a elbe target rootfilesystem.
TYPE: RootFileSystemType¶
includes all subelements to define the elbe project
Example¶
<RootFileSystemType>
<initvm> rfs:initvm </initvm>
<project> rfs:project </project>
<check-image-list> rfs:check-image-list </check-image-list>
<target> rfs:target </target>
<archive> base64Binary </archive>
<debootstrappkgs> rfs:fullpkg-list </debootstrappkgs>
<initvmpkgs> rfs:fullpkg-list </initvmpkgs>
<initvm_sources_list> rfs:string </initvm_sources_list>
<initvm_apt_prefs> rfs:string </initvm_apt_prefs>
<fullpkgs> rfs:fullpkg-list </fullpkgs>
<sources_list> rfs:string </sources_list>
<apt_prefs> rfs:string </apt_prefs>
<elbe_version> rfs:string </elbe_version>
<src-cdrom> rfs:src-cdrom </src-cdrom>
</RootFileSystemType>
Elements description¶
- [attr] created dateTime
- timestamp of creation of the xml file
- [attr] revision rfs:revisionNr
- revision of the xml file (needs to match revision of the schema)
- initvm rfs:initvm optional
- Configurations that are used for creating the initvm e.g. the definition of the used debian mirrors, suite and buildtype
- project rfs:project optional
- Configurations that are used for creating the buildenvironment and the target rootfilesystem. e.g. the definition of the used debian mirrors.
- check-image-list rfs:check-image-list optional
- Sequence of image to check for emulation.
- target rfs:target optional
- Configurations that are used to create the target rootfilesystem
- archive base64Binary optional
- tar.bz2 file that contains configuration files for the target rootfilesystem. To alter this node use elbe chg_archive and to get the content of this node elbe get_archive.
- debootstrappkgs rfs:fullpkg-list
- List of packages installed right after debootstrap
- initvmpkgs rfs:fullpkg-list
- List of packages installed right after debootstrap
- initvm_sources_list rfs:string
- apt sources list.
- initvm_apt_prefs rfs:string
- apt preferences list
- fullpkgs rfs:fullpkg-list
- List of packages with their versions installed on the RFS
- sources_list rfs:string
- apt sources list.
- apt_prefs rfs:string
- apt preferences list
- elbe_version rfs:string
- Elbe Version that was used in the last build of this file.
- src-cdrom rfs:src-cdrom
- Configurations of the source CDROM
SIMPLE TYPE: revisionNr¶
is used to decide if your elbe version is compatiblewith the given xml file
Base Type¶
integer
Restrictions¶
minInclusive | 6 |
maxInclusive | 6 |
TYPE: binary-url¶
e.g. “http://myhost/debian /” or “http://debian.org/debian main”
Example¶
<binary-url>
</binary-url>
Elements description¶
- [attr] pin string
- Pin-Priority of packages from this source.
- [attr] package string
- Packages that should be pinned.
TYPE: url¶
links to one additional debian mirror
Example¶
<url>
<binary> rfs:binary-url </binary>
<source> string </source>
<raw-key> rfs:string </raw-key>
<options> rfs:mirror-options </options>
</url>
Elements description¶
- binary rfs:binary-url optional
- e.g. “http://myhost/debian /” or “http://debian.org/debian main”
- source string optional
- e.g. “http://myhost/sources /” or “http://debian.org/debian main”
- raw-key rfs:string optional
- Raw Public Key used to sign this Repository
- options rfs:mirror-options
- List of options for this mirror
TYPE: url-list¶
links to additional debian mirrors
Example¶
<url-list>
<url> rfs:url </url>
</url-list>
TYPE: mirror¶
specify main and additional debian mirrors
Example¶
<mirror>
<options> rfs:mirror-options </options>
<primary_host> rfs:string </primary_host>
<primary_path> rfs:string </primary_path>
<primary_proto> rfs:string </primary_proto>
<primary_proxy> rfs:string </primary_proxy>
<cdrom> rfs:string </cdrom>
<host> rfs:string </host>
<url-list> rfs:url-list </url-list>
</mirror>
Elements description¶
- options rfs:mirror-options
- Options for the primary mirror.
- primary_host rfs:string
- IP address or hostname of the primary debian mirror e.g. “debian.org” without a protocol or any slash
- primary_path rfs:string
- base path to the debian mirror on the given host e.g. “/debian”
- primary_proto rfs:string
- protocol to access the primary debian mirror e.g. “http” or “ftp”
- primary_proxy rfs:string
- proxy to access the debian mirror e.g. “http://me:mypass@myproxy:8080”
- cdrom rfs:string
- iso image of a cdrom/dvd with debian packages.
- host rfs:string
- Url of the host mirror.
- url-list rfs:url-list optional
- additional debian repositories, e.g. for own debian packages
TYPE: mirror-options¶
List of options for a mirror
Example¶
<mirror-options>
<option> rfs:string </option>
</mirror-options>
Elements description¶
- option rfs:string
- e.g. trusted=yes or check-valid-until=no
TYPE: initvm¶
describes settings that apply to the creation of the initvm
Example¶
<initvm>
<buildtype> rfs:string </buildtype>
<mirror> rfs:mirror </mirror>
<noauth> rfs:string </noauth>
<preference> rfs:preference </preference>
<suite> rfs:suite-initvm </suite>
<pkg-list> rfs:pkg-list </pkg-list>
<preseed> rfs:preseed </preseed>
<size> rfs:string </size>
<mem> rfs:memory </mem>
<swap-size> rfs:memory </swap-size>
<max-cpus> integer </max-cpus>
<img> rfs:string </img>
<portforwarding> rfs:portforwarding </portforwarding>
<finetuning> rfs:initvm-finetuning </finetuning>
</initvm>
Elements description¶
- buildtype rfs:string
- Default buildtype like armel, ppc, and in the future armel-virtio
- mirror rfs:mirror
- used debian mirrors
- noauth rfs:string optional
- allow installation of unsigned debian packages
- preference rfs:preference optional
- used for pinning of all packages TODO: example?
- suite rfs:suite-initvm
- name of the debian suite that should be used to generate the initvm. E.g. “buster”, “bullseye”, “sid”, …
- pkg-list rfs:pkg-list
- additional packages that are installed into the initvm.
- preseed rfs:preseed
- Custom preseeding Values for apt
- size rfs:string
- size of the virtual harddisk used to run the build environment
- mem rfs:memory
- amount of memory mapped into the virtual build environment
- swap-size rfs:memory
- size of the virtual swap partition used in the build environment. this size is subtracted from the size of the virtual harddisk. Supports unit prefixes like GiB, GB, and G.
- max-cpus integer
- The number of cpus used by the initvm is clamped to this value. This shall protect the initvm from running out of memory, when running on machines with large numbers of cores. When increasing this value, be sure to also increase mem and maybe add some swap.
- img rfs:string
- hd image backend format: raw, qcow, vmdk, …
- portforwarding rfs:portforwarding
- network ports of the buildenvironment that are forwarded to the host machine
- finetuning rfs:initvm-finetuning
- Lists of commands to execute or files to create on the initvm at the very end after the debian-installer.
TYPE: project¶
describes elbe project settings that apply to the creation of the targetrootfilesystem and include the definition of the build environment
Example¶
<project>
<name> rfs:string </name>
<version> rfs:string </version>
<description> rfs:string </description>
<buildtype> rfs:string </buildtype>
<mirror> rfs:mirror </mirror>
<noauth> rfs:string </noauth>
<preference> rfs:preference </preference>
<raw-preference> rfs:raw-preference </raw-preference>
<suite> rfs:suite-proj </suite>
<buildimage> rfs:buildimage </buildimage>
<preseed> rfs:preseed </preseed>
</project>
Elements description¶
- name rfs:string optional
- name of the project this rootfilesystem is associated with
- version rfs:string optional
- version of the rootfilesystem definition
- description rfs:string optional
- human readable description of the project
- buildtype rfs:string
- Default buildtype like armel, ppc, and in the future armel-virtio
- mirror rfs:mirror
- used debian mirrors
- noauth rfs:string optional
- allow installation of unsigned debian packages
- preference rfs:preference optional
- used for pinning of all packages TODO: example?
- raw-preference rfs:raw-preference optional
- gets dedented and striped and is then written to /etc/apt/preferences TODO: example?
- suite rfs:suite-proj
- name of the debian suite that should be used to generate the buildenvironment and the rootfilesystem. E.g. “bullseye”, “bookworm”, “sid”, …
- buildimage rfs:buildimage optional
- reference to the buildimage which is used to generate the rootfilesystem
- preseed rfs:preseed
- Custom preseeding Values for apt
TYPE: check-image-list¶
Describes a sequence of check to be done on images.
Example¶
<check-image-list>
<check> rfs:check-img </check>
</check-image-list>
Elements description¶
- check rfs:check-img
- FIXME - I have no documentation
TYPE: check-img¶
Name of the image in the build to emulate. Image thatwere .tgz are also accepted.
Example¶
<check-img>
<img> rfs:string </img>
<interpreter> rfs:string </interpreter>
<interpreter-opts> rfs:string </interpreter-opts>
<action> rfs:check-img-action </action>
</check-img>
Elements description¶
- img rfs:string
- Name of the image in the build to emulate. Image that were .tgz are also accepted.
- interpreter rfs:string
- Name of the interpreter to use for the emulation. e.g., qemu-system-x86_64 or qemu-system-ppc, etc.
- interpreter-opts rfs:string
- Options to pass to the interpreter. e.g., -enable-kvm or -drive format=raw,file=$ELBE_IMG or -hda $ELBE_IMG Word expansion is done before passing it to the interpreter. You can safely assume that the environment variable ELBE_IMG contains the absolute path to the target image to emulate.
- action rfs:check-img-action
- Action to be done on the target image to emulate.
TYPE: check-img-action¶
Action to perform on the images of a build.
Example¶
<check-img-action>
<login> rfs:string </login>
<serial> rfs:serial </serial>
</check-img-action>
Elements description¶
- login rfs:string
- Try to login into root session and shutdown the machine
- serial rfs:serial
- Serial communication to do with the interpreter. This requires -serial stdio for QEMU’s interpreters.
TYPE: serial¶
Describes a communication to do over a serial line. Thecommunication is done sequentially as it.
Example¶
<serial>
</serial>
Elements description¶
GROUP : serial-action¶
Definition of possible action on serial communication.
expect type: rfs:string¶
A regular expression to expect to receive on the line.
sendline type: rfs:string¶
Send a string terminated with a newline character on theline.
EOF type: rfs:string¶
Expect the connecion to be closed. This should only bethe last item in the sequence.
SIMPLE TYPE: suite-initvm¶
FIXME - I have no documentation
Base Type¶
string
Restrictions¶
enumeration | sid |
enumeration | bullseye |
enumeration | buster |
SIMPLE TYPE: suite-proj¶
FIXME - I have no documentation
Base Type¶
string
Restrictions¶
enumeration | sid |
enumeration | bookworm |
enumeration | bullseye |
enumeration | buster |
enumeration | stretch |
enumeration | jessie |
enumeration | jammy |
enumeration | groovy |
enumeration | focal |
enumeration | cosmic |
enumeration | bionic |
enumeration | artful |
enumeration | zesty |
enumeration | yakkety |
enumeration | xenial |
enumeration | wily |
enumeration | vivid |
enumeration | utopic |
enumeration | trusty |
enumeration | saucy |
enumeration | raring |
enumeration | quantal |
enumeration | precise |
enumeration | lucid |
TYPE: preference¶
describes a global pinning of debian packages
Example¶
<preference>
</preference>
Elements description¶
- [attr] pin string
- Q: TODO: format?
TYPE: raw-preference¶
content is directly written to /etc/apt/preferences.
Example¶
<raw-preference>
</raw-preference>
Elements description¶
TYPE: buildimage¶
definition of the build environment
Example¶
<buildimage>
<arch> rfs:string </arch>
<size> rfs:string </size>
<interpreter> rfs:string </interpreter>
<interpreterversion> rfs:string </interpreterversion>
<kinitrd> rfs:string </kinitrd>
<console> rfs:string </console>
<machine> rfs:string </machine>
<triplet> rfs:string </triplet>
<NIC> rfs:NIC </NIC>
<portforwarding> rfs:portforwarding </portforwarding>
<pkgversionlist> rfs:string </pkgversionlist>
<pkg-list> rfs:pkg-list </pkg-list>
</buildimage>
Elements description¶
- arch rfs:string
- architecture of the target system. e.g. “amd64”, “armel”, “ppc”, ..
- size rfs:string
- size of the virtual harddisk used to run the build environment
- interpreter rfs:string
- virtual machine interpreter, e.g. “kvm”, “qemu-system-arm”, …
- interpreterversion rfs:string
- virtual machine interpreter version, e.g. “2.8.0”, “1.4.7”, …
- kinitrd rfs:string
- pkg name of the initrd/kernel package. (obsolete and ignored)
- console rfs:string
- serial console of the virtual machine, e.g. “ttyAMA0,115200n1”
- machine rfs:string
- virtual platform to host the build environment, e.g. “versatilepb”
- triplet rfs:string
- The triplet that is used to generate the SDK environment.
- NIC rfs:NIC
- network interface emulation
- portforwarding rfs:portforwarding
- network ports of the buildenvironment that are forwarded to the host machine
- pkgversionlist rfs:string
- create /etc/elbe_pkglist on the target RFS. It includes all packages that include files that are used in the target. The list also contains the versions of the used packages.
- pkg-list rfs:pkg-list
- additional packages that are only installed into the build environment; not into the target root filesystem.
TYPE: memory¶
Helper around memory_restriction to allow XML base attribute
Example¶
<memory>
</memory>
Elements description¶
SIMPLE TYPE: memory_restriction¶
Memory can be specified using binary unit prefixes like MiB and GiB,or SI prefixes like GB,MB or simply G or M.
Base Type¶
string
Restrictions¶
patt ern* |
(d+(k | M | G | kB | MB | GB | kiB | MiB | Gi B)?) |
TYPE: NIC¶
describes a virtual network interface
Example¶
<NIC>
<model> rfs:string </model>
<MAC> rfs:string </MAC>
</NIC>
Elements description¶
- model rfs:string
- hardware emulation of the network interface; e.g. “e1000”
- MAC rfs:string
- mac address of the virtual network interface
TYPE: fw_proto¶
Helper around fw_proto_restriction to allow XML base attribute
Example¶
<fw_proto>
</fw_proto>
Elements description¶
SIMPLE TYPE: fw_proto_restriction¶
only tcp and udp are allowed protocols for forwarding
Base Type¶
string
Restrictions¶
enumeration | tcp |
enumeration | udp |
TYPE: forward¶
forward a network port from the build environment to the host machine
Example¶
<forward>
<proto> rfs:fw_proto </proto>
<buildenv> integer </buildenv>
<host> integer </host>
</forward>
Elements description¶
- proto rfs:fw_proto
- network protocol to forward either “udp” or “tcp”
- buildenv integer
- port on the buildenvironment, e.g. “22” for ssh
- host integer
- port on the host machine, e.g. “10022”
TYPE: portforwarding¶
forward network ports from the build environment to the host machine
Example¶
<portforwarding>
<forward> rfs:forward </forward>
</portforwarding>
Elements description¶
- forward rfs:forward
- describes a single port forward
TYPE: target¶
configuration of the target rootfilesystem
Example¶
<target>
<hostname> rfs:string </hostname>
<domain> rfs:string </domain>
<passwd> rfs:string </passwd>
<console> rfs:string </console>
<debootstrap> rfs:debootstrap </debootstrap>
<package> rfs:package </package>
<images> rfs:images </images>
<fstab> rfs:fstab </fstab>
<tighten> rfs:string </tighten>
<diet> rfs:string </diet>
<setsel> rfs:string </setsel>
<install-recommends> rfs:string </install-recommends>
<finetuning> rfs:finetuning </finetuning>
<project-finetuning> rfs:project-finetuning </project-finetuning>
<pbuilder> rfs:pbuilder </pbuilder>
<pkg-list> rfs:pkg-list </pkg-list>
<pkg-blacklist> rfs:blacklist </pkg-blacklist>
<hostsdk-pkg-list> rfs:pkg-list </hostsdk-pkg-list>
</target>
Elements description¶
- hostname rfs:string
- hostname of the system
- domain rfs:string
- domainname of the network the target system is part of
- passwd rfs:string
- root password
- console rfs:string
- serial console for getty
- debootstrap rfs:debootstrap
- Bootstrap configuration
- package rfs:package
- package rootfilesystem as a tarball, cpio or a squashfs image
- images rfs:images
- generate (flashable) images of the rootfilesystem
- fstab rfs:fstab
- specify which resources should be mounted
- tighten rfs:string optional
- don’t install any dependencies; just the content of the given debian packages
- diet rfs:string optional
- use reverse dependencies of the given debian packages to determine the rootfilesystem content; this is useful to get rid of dpkg/apt.
- setsel rfs:string optional
- Elbe uses
dpkg --set-selections
to install packages in the target. The rootfs still needs dpkg, and all dependencies need to be specified in the pkg-list. The target will contain all postinst generated scripts. - install-recommends rfs:string optional
- Activate the installation of recommended Packages.
- finetuning rfs:finetuning optional
- apply the given commands to the target rootfilesystem
- project-finetuning rfs:project-finetuning optional
- apply the given commands to the project directory, after images have been generated. Currently supported use-cases are: * extract partition from image and mark as build artifact. * mark files as build artifacts * mv files from target directory to project directory
- pbuilder rfs:pbuilder
- build and optionaly install debianized sources
- pkg-list rfs:pkg-list
- install the given packages into the rootfilesystem
- pkg-blacklist rfs:blacklist
- avoid installation of packages into sysroot or target
- hostsdk-pkg-list rfs:pkg-list
- install the given packages into the hostsdk. (ignores pin and versions, with the current implementation)
TYPE: debootstrap_variant¶
Helper around debootstrap_variant_restriction to allow XML base attribute
Example¶
<debootstrap_variant>
</debootstrap_variant>
Elements description¶
SIMPLE TYPE: debootstrap_variant_restriction¶
Restrict the possible debootstrap variants
Base Type¶
string
Restrictions¶
enumeration | minbase |
enumeration | buildd |
enumeration | fakechroot |
TYPE: debootstrap¶
Container for debootstrap configuration.
Example¶
<debootstrap>
<variant> rfs:debootstrap_variant </variant>
<include> string </include>
<exclude> string </exclude>
</debootstrap>
Elements description¶
- variant rfs:debootstrap_variant
- Name of the bootstrap script variant to use. The following variants are supported: * minbase: required packages and apt. * buildd: build-essential packages. * fakechroot: installs the packages without root privileges.
- include string
- Comma separated list of packages which will be added to download and extract lists.
- exclude string
- Comma separated list of packages which will be removed from download and extract lists. WARNING: you can and probably will exclude essential packages, be careful using this option.
TYPE: ubi_type¶
Helper around ubi_type_restriction to allow XML base attribute
Example¶
<ubi_type>
</ubi_type>
Elements description¶
SIMPLE TYPE: ubi_type_restriction¶
a ubi volume can be either static or dynamic
Base Type¶
string
Restrictions¶
enumeration | static |
enumeration | dynamic |
TYPE: ubi¶
describes a ubi volume
Example¶
<ubi>
<type> rfs:ubi_type </type>
<label> rfs:string </label>
<id> integer </id>
<size> rfs:part_size </size>
<binary> rfs:string </binary>
<empty> rfs:string </empty>
</ubi>
Elements description¶
- type rfs:ubi_type
- type of the ubi volume; either “static” or “dynamic”
- label rfs:string
- human readable name of the ubi volume (also used for mount by label)
- id integer
- id of the ubi volume
- size rfs:part_size
- size of the ubi volume
- binary rfs:string
- path and filename of a binary image which will be used as a source for this volume; this can be used for example to store the linux kernel in a static ubi volume
- empty rfs:string
- if binary is used or a label was given that is also available in the fstab this tag can be used to force the creation of an empty ubi volume.
TYPE: ubivg¶
container for all ubi volumes of a mtd device
Example¶
<ubivg>
<label> rfs:string </label>
<miniosize> rfs:string </miniosize>
<maxlogicaleraseblockcount> rfs:string </maxlogicaleraseblockcount>
<logicaleraseblocksize> rfs:string </logicaleraseblocksize>
<physicaleraseblocksize> rfs:string </physicaleraseblocksize>
<subpagesize> rfs:string </subpagesize>
<ubi> rfs:ubi </ubi>
</ubivg>
Elements description¶
- label rfs:string
- human readable name; used to generate filename for the flashable image file
- miniosize rfs:string
- flash parameter minimal i/o size
- maxlogicaleraseblockcount rfs:string
- flash parameter maximum logical erase block count
- logicaleraseblocksize rfs:string
- flash parameter logical erase block size
- physicaleraseblocksize rfs:string
- flash parameter physical erase block size
- subpagesize rfs:string
- flash parameter subpagesize
- ubi rfs:ubi
- list of ubi volumes
TYPE: mtd¶
describes a mtd device
Example¶
<mtd>
<name> rfs:string </name>
<nr> integer </nr>
<size> rfs:part_size </size>
<binary> rfs:string </binary>
<ubivg> rfs:ubivg </ubivg>
</mtd>
Elements description¶
- name rfs:string
- human readable name of the mtd device
- nr integer
- number of the mtd device
- size rfs:part_size
- size of the mtd device
- binary rfs:string
- path and filename of a binary image which will be used as a source for this mtd device; this can be used for example to store the bootloader in the beginning of the flash (mtd0)
- ubivg rfs:ubivg
- if the mtd will be used to store ubi volumes, this container is used to define them
TYPE: gpthd¶
describes a harddisk
Example¶
<gpthd>
<name> rfs:string </name>
<size> rfs:part_size </size>
<first_partition_sector> rfs:part_size </first_partition_sector>
<grub-install> rfs:string </grub-install>
<binary> rfs:binaryblob </binary>
<partition> rfs:partition </partition>
</gpthd>
Elements description¶
- name rfs:string
- human readable name of the harddisk, this will be used as name for the image file
- size rfs:part_size
- size of the harddisk
- first_partition_sector rfs:part_size
- Starting sector for the first partition
- grub-install rfs:string
- human readable name of the harddisk, this will be used as name for the image file
- binary rfs:binaryblob
- binary blob that is dd’ed to the specified offset
- partition rfs:partition
- Partition Entries of this harddisk
TYPE: binaryblob¶
a binary that is dd’ed to the specified offset
Example¶
<binaryblob>
</binaryblob>
Elements description¶
- [attr] offset int
- byteoffset from the beginning of the image
- [attr] blocksize int
- blocksize in bytes for the bytewise copy (default 1)
TYPE: msdoshd¶
describes a harddisk
Example¶
<msdoshd>
<name> rfs:string </name>
<size> rfs:part_size </size>
<first_partition_sector> rfs:part_size </first_partition_sector>
<grub-install> rfs:string </grub-install>
<binary> rfs:binaryblob </binary>
<partition> rfs:partition </partition>
<extended> rfs:extended </extended>
<partition> rfs:partition </partition>
</msdoshd>
Elements description¶
- name rfs:string
- human readable name of the harddisk, this will be used as name for the image file
- size rfs:part_size
- size of the harddisk
- first_partition_sector rfs:part_size
- Starting sector for the first partition
- grub-install rfs:string
- human readable name of the harddisk, this will be used as name for the image file
- binary rfs:binaryblob
- binary blob that is dd’ed to the specified offset
- partition rfs:partition
- Partition Entries of this harddisk (max: 4)
- extended rfs:extended
- Extended Partition Entries of this harddisk (max: 1)
- partition rfs:partition
- Partition Entries of this harddisk (max: 3)
TYPE: images¶
container for all storage devices of the target
Example¶
<images>
<mtd> rfs:mtd </mtd>
<msdoshd> rfs:msdoshd </msdoshd>
<gpthd> rfs:gpthd </gpthd>
<passno> rfs:string </passno>
</images>
Elements description¶
- mtd rfs:mtd
- container for all mtd devices of the target
- msdoshd rfs:msdoshd
- container for Harddisks with msdos Partitionlabel.
- gpthd rfs:gpthd
- container for Harddisks with GPT Partitionlabel
- passno rfs:string
- passno order for fsck
TYPE: fs¶
description of a linux filesystem
Example¶
<fs>
<type> rfs:fs_type </type>
<mkfs> rfs:string </mkfs>
<tune2fs> rfs:string </tune2fs>
<passno> rfs:string </passno>
</fs>
Elements description¶
- type rfs:fs_type
- filesystemtype, e.g. “ext3”, “ubifs”, …
- mkfs rfs:string
- options passed to the mkfs command
- tune2fs rfs:string
- options passed to the tune2fs command
- passno rfs:string
- passno order for fsck
TYPE: bylabel¶
mount storage by the label of the partition or volume
Example¶
<bylabel>
<label> rfs:string </label>
<mountpoint> rfs:string </mountpoint>
<fs> rfs:fs </fs>
<options> rfs:string </options>
<nofstab> rfs:empty </nofstab>
</bylabel>
Elements description¶
- label rfs:string
- label of the partition/volume to mount
- mountpoint rfs:string
- path in the rootfilesystem where the partition/volume is mounted
- fs rfs:fs
- filesystem of the partition/volume to mount
- options rfs:string
- options passed to the mount command
- nofstab rfs:empty
- This mountpoint shall not be inserted into fstab. Useful for redundant filesystems, where two entries with identical mountpoint would end up in the fstab.
TYPE: bydev¶
mount virtual filesystems or other storage devices device-node
Example¶
<bydev>
<source> rfs:string </source>
<mountpoint> rfs:string </mountpoint>
<fs> rfs:fs </fs>
<options> rfs:string </options>
</bydev>
Elements description¶
- source rfs:string
- either a device-node or “none” for virtual filesystems
- mountpoint rfs:string
- path in the rootfilesystem where the device or virtual filesystem is mounted
- fs rfs:fs
- filesystem of the device or the virtual filesystem name
- options rfs:string
- options passed to the mount command
TYPE: fstab¶
container for mounts
Example¶
<fstab>
<bylabel> rfs:bylabel </bylabel>
<bydev> rfs:bydev </bydev>
</fstab>
Elements description¶
- bylabel rfs:bylabel
- describes a mount by a volume or partition label
- bydev rfs:bydev
- describes a mount based on a device node or a mount of a virtual filesystem like debugfs or tmpfs
TYPE: package¶
list of packages, each contains the hole rootfilesystem
Example¶
<package>
<tar> rfs:tar </tar>
<cpio> rfs:cpio </cpio>
<squashfs> rfs:squashfs </squashfs>
</package>
Elements description¶
- tar rfs:tar optional
- tar package of the rootfilesystem
- cpio rfs:cpio optional
- cpio package of the rootfilesystem
- squashfs rfs:squashfs optional
- squashfs image of the rootfilesystem
TYPE: tar¶
describes a tar package
Example¶
<tar>
<name> rfs:string </name>
<options> rfs:string </options>
</tar>
Elements description¶
- name rfs:string optional
- filename of the tar package
- options rfs:string optional
- options passed to the tar command
TYPE: cpio¶
describes a cpio package
Example¶
<cpio>
<name> rfs:string </name>
</cpio>
Elements description¶
- name rfs:string optional
- filename of the cpio package
TYPE: squashfs¶
describes a squashfs image
Example¶
<squashfs>
<name> rfs:string </name>
<options> rfs:string </options>
</squashfs>
Elements description¶
- name rfs:string optional
- filename of the squashfs image
- options rfs:string optional
- options passed to the mksquashfs command
TYPE: partition¶
describes a partition of a harddisk
Example¶
<partition>
<size> rfs:part_size </size>
<label> rfs:string </label>
<name> rfs:string </name>
<binary> rfs:string </binary>
<bootable> rfs:string </bootable>
<biosgrub> rfs:string </biosgrub>
</partition>
Elements description¶
- size rfs:part_size
- size of the partition
- label rfs:string
- human readable label of the partition used for mount by label and as filename for the flashable image
- name rfs:string
- human readable name of the partition used for naming a gpt partition
- binary rfs:string optional
- path and filename of a binary image which will be used as a source for this volume; this can be used for example to store a bootloader in a partition.
- bootable rfs:string optional
- Whether this partition is marked bootable.
- biosgrub rfs:string optional
- Whether this partition is marked as biosgrub partition.
TYPE: extended¶
describes a extended partition of a harddisk
Example¶
<extended>
<size> rfs:part_size </size>
<logical> rfs:partition </logical>
</extended>
Elements description¶
- size rfs:part_size
- size of the partition
- logical rfs:partition
- logical partition of this extended partition
TYPE: part_size¶
Helper around part_size_restriction to allow XML base attribute
Example¶
<part_size>
</part_size>
Elements description¶
SIMPLE TYPE: part_size_restriction¶
format of the partition size
Base Type¶
string
Restrictions¶
pa tte rn | (d +(k | M | G | kB | MB | GB | kiB | MiB | Gi B)? | r ema in) |
TYPE: part_nr¶
Helper around part_nr_restriction to allow XML base attribute
Example¶
<part_nr>
</part_nr>
Elements description¶
SIMPLE TYPE: part_nr_restriction¶
allow maximum 4 primary partitions
Base Type¶
integer
Restrictions¶
minInclusive | 1 |
maxInclusive | 4 |
TYPE: part_type¶
Helper around part_type_restriction to allow XML base attribute
Example¶
<part_type>
</part_type>
Elements description¶
SIMPLE TYPE: part_type_restriction¶
list of supported partition types
Base Type¶
string
Restrictions¶
enumeration | linux |
enumeration | swap |
TYPE: fs_type¶
Helper around fs_type_restriction to allow XML base attribute
Example¶
<fs_type>
</fs_type>
Elements description¶
SIMPLE TYPE: fs_type_restriction¶
list of supported filesystems
Base Type¶
string
Restrictions¶
enumeration | ext2 |
enumeration | ext3 |
enumeration | ext4 |
enumeration | xfs |
enumeration | ubifs |
enumeration | tmpfs |
enumeration | debugfs |
enumeration | configfs |
enumeration | devpts |
enumeration | proc |
enumeration | sysfs |
enumeration | vfat |
enumeration | btrfs |
enumeration | devtmpfs |
enumeration | swap |
TYPE: initvm-finetuning¶
container for initvm-finetuning actions; these actions areexecuted at the end of the init-elbe.sh script in the target.
Example¶
<initvm-finetuning>
<command> rfs:string </command>
</initvm-finetuning>
Elements description¶
GROUP : initvm-action¶
definition of initvm-finetuning actions
command type: rfs:string¶
execute a shell command in the target
TYPE: finetuning¶
container for finetuning commands; these commands are executed in theroot of the target filesystem after the target filesystem was created
Example¶
<finetuning>
<addgroup> rfs:addgroup </addgroup>
<adduser> rfs:adduser </adduser>
<file> rfs:file </file>
<rm> rfs:rm </rm>
<cp> rfs:cpmv </cp>
<ln> rfs:cpmv </ln>
<buildenv_cp> rfs:cpmv </buildenv_cp>
<b2t_cp> rfs:cpmv </b2t_cp>
<t2b_cp> rfs:cpmv </t2b_cp>
<mv> rfs:cpmv </mv>
<buildenv_mv> rfs:cpmv </buildenv_mv>
<t2p_mv> rfs:cpmv </t2p_mv>
<mkdir> rfs:string </mkdir>
<buildenv_mkdir> rfs:string </buildenv_mkdir>
<mknod> rfs:mknod </mknod>
<purge> rfs:string </purge>
<raw_cmd> rfs:string </raw_cmd>
<command> rfs:string </command>
<buildenv_command> rfs:string </buildenv_command>
<updated> rfs:string </updated>
<artifact> rfs:string </artifact>
<rm_apt_source> rfs:string </rm_apt_source>
</finetuning>
Elements description¶
GROUP : action¶
definition of finetuning commands
addgroup type: rfs:addgroup¶
add a group by name
adduser type: rfs:adduser¶
add a user account by login name
file type: rfs:file¶
write or append text to a file
rm type: rfs:rm¶
remove a file or directory (recursive). Also allows specifying an exclude pattern.
cp type: rfs:cpmv¶
copy a file or directory (recursive)
ln type: rfs:cpmv¶
create a symbolic link
buildenv_cp type: rfs:cpmv¶
copy a file or directory (recursive)
b2t_cp type: rfs:cpmv¶
copy a file or directory (recursive)
t2b_cp type: rfs:cpmv¶
copy a file or directory (recursive)
mv type: rfs:cpmv¶
move a file or directory
buildenv_mv type: rfs:cpmv¶
move a file or directory
t2p_mv type: rfs:cpmv¶
move a file from the target to the project directory
mkdir type: rfs:string¶
create a directory
buildenv_mkdir type: rfs:string¶
create a directory
mknod type: rfs:mknod¶
move a file or directory
purge type: rfs:string¶
purge a debian package out of the rootfilesystem
raw_cmd type: rfs:string¶
execute the defined command
command type: rfs:string¶
execute the defined command in /bin/sh
buildenv_command type: rfs:string¶
execute the defined command
updated type: rfs:string¶
include the base debian repository in the target rfs to enabledowngrades via elbe-updated
artifact type: rfs:string¶
make the named file an artifact. The path is relative to thetarget root.
rm_apt_source type: rfs:string¶
remove the specified source from the sources.list on the target
TYPE: project-finetuning¶
container for project-finetuning commands; these commands are executed in theproject directory, after the images have been generated.
Example¶
<project-finetuning>
<t2p_mv> rfs:cpmv </t2p_mv>
<artifact> rfs:string </artifact>
<rm_artifact> rfs:string </rm_artifact>
<losetup> rfs:losetup </losetup>
<img_convert> rfs:img_convert </img_convert>
<set_packer> rfs:set_packer </set_packer>
<unit-tests> rfs:unit-tests </unit-tests>
</project-finetuning>
Elements description¶
GROUP : project-action¶
definition of finetuning commands
t2p_mv type: rfs:cpmv¶
move a file from the target to the project directory
artifact type: rfs:string¶
make the named file an artifact. The path is relativeto the project directory.
rm_artifact type: rfs:string¶
remove a project artifact from the list of artifacts.
losetup type: rfs:losetup¶
Setup the loop device with an image file. This node wraps image_finetuningActions, which access the loop device then.
img_convert type: rfs:img_convert¶
Convert a Partitionimage to another format. The new Image is added tothe list of artifacts.
set_packer type: rfs:set_packer¶
Specify the packer to use for an artifact.
unit-tests type: rfs:unit-tests¶
Allows to generate test suites for the project.
TYPE: losetup¶
Container for image_finetuning commands; these commands are executed in theproject directory, while a drive image is setup as a loop device.The loop device id is passed to the individual actions.
Example¶
<losetup>
<extract_partition> rfs:extract_partition </extract_partition>
<copy_from_partition> rfs:copy_from_partition </copy_from_partition>
<copy_to_partition> rfs:copy_to_partition </copy_to_partition>
<set_partition_type> rfs:set_partition_type </set_partition_type>
<command> rfs:partition-command </command>
</losetup>
Elements description¶
- [attr] img string
- FIXME - I have no documentation
GROUP : image_action¶
definition of image finetuning commands
extract_partition type: rfs:extract_partition¶
Extract a Partition from the currently mounted loop device.
copy_from_partition type: rfs:copy_from_partition¶
Copy a file from a partition. The partition is mounted, and the file is thencopied from the mounted filesystem into the builddir. Its marked as an Artifact.
copy_to_partition type: rfs:copy_to_partition¶
Copy an artifact onto a partition. The partition is mounted, and the file is thencopied into the mounted filesystem.
set_partition_type type: rfs:set_partition_type¶
Set the type of a partition via fdisk. (to support esoteric partition types,that parted does not support.)
command type: rfs:partition-command¶
Execute a command with a partition mounted. Before thecomand is executed, the environment variable ELBE_MNT isset to the absolute filepath to the mount point.
TYPE: extract_partition¶
Describe the partition to be extracted (nr) and the destination filename.The value of the tag describes the filename of the generated Imagefile.The Image is per default compressed with gzip afterwards.
Example¶
<extract_partition>
</extract_partition>
Elements description¶
- [attr] part integer
- FIXME - I have no documentation
TYPE: partition-command¶
The node’s text should be a valid shell commands
Example¶
<partition-command>
</partition-command>
Elements description¶
- [attr] part integer
- FIXME - I have no documentation
- [attr] nomount boolean
- FIXME - I have no documentation
TYPE: copy_from_partition¶
Attribute part describes the partition to be mounted (nr).The value of the tag describes the filename to be copied from theFilesystem, after it has been mounted.Attribute artifact is the artifact name.
Example¶
<copy_from_partition>
</copy_from_partition>
Elements description¶
- [attr] part integer
- FIXME - I have no documentation
- [attr] artifact string
- FIXME - I have no documentation
TYPE: copy_to_partition¶
Attribute part describes the partition to be mounted (nr).The value of the tag describes the filename where the artifact shallbe copied to, onto the filesystem, after it has been mounted.Attribute artifact is the artifact name.
Example¶
<copy_to_partition>
</copy_to_partition>
Elements description¶
- [attr] part integer
- FIXME - I have no documentation
- [attr] artifact string
- FIXME - I have no documentation
TYPE: set_partition_type¶
Attribute part describes the partition to be modified (nr).Attribute type is the numerical partition id, as understood byfdisk.
Example¶
<set_partition_type>
</set_partition_type>
Elements description¶
- [attr] part integer
- FIXME - I have no documentation
- [attr] type string
- FIXME - I have no documentation
TYPE: addgroup¶
describes an additional user group to be created. the following parameters areavailable:’gid’ - group id.’system = “True” - system group.The value of the tag describes the group name namefor the account.
Example¶
<addgroup>
</addgroup>
Elements description¶
- [attr] gid string
- FIXME - I have no documentation
- [attr] system boolean
- FIXME - I have no documentation
TYPE: img_convert¶
Describe the Image to be converted.The value of the tag describes the filename of the source Imagefile.The dst attribute the destination filename, and the fmt attribute isthe format. (See qemu-img –help for a list of possible formats)The Image is per default compressed with gzip afterwards.
Example¶
<img_convert>
</img_convert>
Elements description¶
- [attr] dst string
- FIXME - I have no documentation
- [attr] fmt string
- FIXME - I have no documentation
- [attr] keep_src boolean
- FIXME - I have no documentation
TYPE: set_packer¶
Set the packer to use for an artifaxct.The value of the tag describes the filename of the Imagefile.The packer attribute may take the following values:(none, gzip, zstd, tar, targz, tarxz, tarzstd)
Example¶
<set_packer>
</set_packer>
Elements description¶
- [attr] packer rfs:packer-type
- FIXME - I have no documentation
SIMPLE TYPE: packer-type¶
FIXME - I have no documentation
Base Type¶
string
Restrictions¶
enumeration | none |
enumeration | gzip |
enumeration | zstd |
enumeration | tar |
enumeration | tarxz |
enumeration | targz |
enumeration | tarzstd |
TYPE: file¶
write or append text to a file, the following parametersare avaible:’dst’ - the destination to write to’encoding’ - the (optional) encoding of the content’append=”True”’ - append the content to file instead of writing’owner’ - (optional) set file owner’group’ - (optional) set group ownership’mode’ - (optional) set file mode bitsThe value of the tag is the raw/encoded content towrite/append to the destination
Example¶
<file>
</file>
Elements description¶
- [attr] dst string
- FIXME - I have no documentation
- [attr] encoding string
- FIXME - I have no documentation
- [attr] append boolean
- FIXME - I have no documentation
- [attr] owner string
- FIXME - I have no documentation
- [attr] group string
- FIXME - I have no documentation
- [attr] mode string
- FIXME - I have no documentation
TYPE: adduser¶
describes an additional user account, the following parameters areavailable:’shell’ - the login shell for the user.passwd - the (optional) password for the user.groups - a comma separated list of groups the user is member of.uid - (optional) user of the user.gid - (optional) primary group, may be numeric or a name.home - home directory.system=”True” - system user.create_home=”False” - do not create the home directory.create_group = “False” - Do not create the primary group.The value of the tag describes the login name for the account.
Example¶
<adduser>
</adduser>
Elements description¶
- [attr] shell string
- FIXME - I have no documentation
- [attr] passwd string
- FIXME - I have no documentation
- [attr] groups string
- FIXME - I have no documentation
- [attr] uid string
- FIXME - I have no documentation
- [attr] gid string
- FIXME - I have no documentation
- [attr] home string
- FIXME - I have no documentation
- [attr] system boolean
- FIXME - I have no documentation
- [attr] create_home boolean
- FIXME - I have no documentation
- [attr] create_group boolean
- FIXME - I have no documentation
TYPE: cpmv¶
describes a copy or move of an element in the rootfilesystem
Example¶
<cpmv>
</cpmv>
Elements description¶
- [attr] path string
- FIXME - I have no documentation
TYPE: rm¶
describes a removal of a pattern from the rootfilesystem.Including an exclude pattern
Example¶
<rm>
</rm>
Elements description¶
- [attr] exclude string
- FIXME - I have no documentation
TYPE: mknod¶
describes a mknod operaition in finetuning
Example¶
<mknod>
</mknod>
Elements description¶
- [attr] opts string
- FIXME - I have no documentation
TYPE: git_src¶
URI of the git repository, e.g. “git://myhost/myrepo.git”
Example¶
<git_src>
</git_src>
Elements description¶
- [attr] revision string
- FIXME - I have no documentation
TYPE: svn_src¶
URI of the svn repository, e.g. “svn://myhost/myrepo/tags/my_tag”
Example¶
<svn_src>
</svn_src>
Elements description¶
- [attr] revision string
- FIXME - I have no documentation
TYPE: pkg¶
describes a debian binary package
Example¶
<pkg>
</pkg>
Elements description¶
- [attr] pin string
- prefer the defined version of the debian package
- [attr] version string
- version of the package
- [attr] auto boolean
- installed automatically as a dependency
- [attr] md5 string
- md5 sum of the package.
- [attr] sha256 string
- sha256 sum of the package.
- [attr] prio string
- priority of the package in the original repository.
- [attr] on_src_cd string
- If set to “False” the source will not be included on the source cdrom.
TYPE: pbuilder¶
reference to debian source packages
Example¶
<pbuilder>
<src-pkg> rfs:string </src-pkg>
<git> rfs:git_src </git>
<svn> rfs:svn_src </svn>
</pbuilder>
Elements description¶
- src-pkg rfs:string
- reference to a debian source package from a deb-src archive. The source will be built with a pbuilder before the image generation.
- git rfs:git_src
- reference to a git tree hosting a debian source package. The source will be built with a pbuilder before the image generation.
- svn rfs:svn_src
- reference to a svn repository hosting a debian source package. The source will be built with a pbuilder before the image generation.
TYPE: blacklist¶
blacklists of debian packages
Example¶
<blacklist>
<sysroot> rfs:pkg-list </sysroot>
</blacklist>
Elements description¶
- sysroot rfs:pkg-list
- avoid installing the specified packages into the sysroot
TYPE: fullpkg-list¶
List of packages to be validated against the installed list.
Example¶
<fullpkg-list>
<pkg> rfs:pkg </pkg>
</fullpkg-list>
TYPE: conf¶
describes a preseeding entry
Example¶
<conf>
</conf>
Elements description¶
- [attr] owner string
- owner package of the config entry
- [attr] key string
- key name of the entry
- [attr] type string
- type of the config entry
- [attr] value string
- value of the config entry
TYPE: empty¶
This element just acts like a flag. It might be there, or not.
Example¶
<empty>
</empty>
Elements description¶
TYPE: string¶
E.L.B.E. standard string. Allow XML base attribute.
Example¶
<string>
</string>
Elements description¶
TYPE: unit-tests¶
Sequence of test suites. The require attribute dst is thename of the file where the Junit XML file will be dumprelative to the project directory.
Example¶
<unit-tests>
<test-suite> rfs:test-suite </test-suite>
</unit-tests>
Elements description¶
- test-suite rfs:test-suite
- FIXME - I have no documentation
TYPE: test-suite¶
A test suite is a sequence of test cases. The requiredattribute name is the an human readable identifier for thetest suite.
Example¶
<test-suite>
<file-exists> rfs:string </file-exists>
</test-suite>
Elements description¶
- [attr] name string
- FIXME - I have no documentation
GROUP : test-case¶
A test-case is a choice of a test to make on the target fs.
file-exists type: rfs:string¶
Verify that a file exists.
TYPE: src-cdrom¶
Configuration of the src-cdrom
Example¶
<src-cdrom>
<size> rfs:memory </size>
<src-opts> rfs:iso-opts </src-opts>
<archive> rfs:src-cdrom-archive </archive>
</src-cdrom>
Elements description¶
- size rfs:memory
- The size limit for each source cdrom ISO image. The files are distributed on several cdroms as needed. Omitting this element means no size limit.
- src-opts rfs:iso-opts
- Options for the source cdrom ISO images.
- archive rfs:src-cdrom-archive
- tar.bz2 file that contains base64 encoded files for the source cdrom.
TYPE: src-cdrom-archive¶
Holds a base64 encoded tar.bz2 file that is added to the src-cdrom.
Example¶
<src-cdrom-archive>
</src-cdrom-archive>
Elements description¶
- [attr] volume rfs:volume-type
- Use this to control where the archive is stored when using split src-cdroms. It consists of a comma-separated list of volume numbers. A volume number can be 0 to n-1 for n equals the number of volumes if the src-cdrom is split. A volume number can also be negative to identify a volume beginning from the last index. (-1: last, -2: second last, …) If you do not specify this attribute, the archive is added to each volume.
SIMPLE TYPE: volume-type¶
FIXME - I have no documentation
Base Type¶
string
Restrictions¶
pattern | (-?d+,)*-?d+ | all |
TYPE: iso-opts¶
ISO image options passed to genisoimage(1).
Example¶
<iso-opts>
<abstract> rfs:string </abstract>
<app> rfs:string </app>
<biblio> rfs:string </biblio>
<copyright> rfs:string </copyright>
<publisher> rfs:string </publisher>
<preparer> rfs:string </preparer>
<sysid> rfs:string </sysid>
<volid> rfs:string </volid>
<volset> rfs:string </volset>
</iso-opts>
Elements description¶
- [attr] strict boolean
- If set to “true”, fails in preprocessing stage if an option doesn’t respect ISO-9660. The default is “false”.
- abstract rfs:string
- FIXME - I have no documentation
- app rfs:string
- FIXME - I have no documentation
- biblio rfs:string
- FIXME - I have no documentation
- copyright rfs:string
- FIXME - I have no documentation
- publisher rfs:string
- FIXME - I have no documentation
- preparer rfs:string
- FIXME - I have no documentation
- sysid rfs:string
- FIXME - I have no documentation
- volid rfs:string
- FIXME - I have no documentation
- volset rfs:string
- FIXME - I have no documentation