30 Commits

Author SHA1 Message Date
Dylan Aïssi
068f8fb18d Fix typo: environemnt -> environment
Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
2025-08-13 22:49:02 +02:00
Dylan Aïssi
b188ca5348 README: Add the recommended ways to contact us
Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
2025-08-09 16:37:52 +02:00
Christopher Obbard
615203e971 docs: Explain example recipes in README
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
2025-08-05 16:16:02 +01:00
Dylan Aïssi
63acf42269 README: use relative link to docker/README.md
This fix the link since the default branch name has changed.

Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
2025-01-28 14:08:54 +01:00
Christopher Obbard
03ec3cbfab Fix grammer/spelling issues in README
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2024-01-13 13:01:36 +00:00
Daniel Andersson
f4ff783055 Include non-free-firmware component in Simple example
Fixes #398
2023-02-24 18:21:50 +01:00
Arnaud Rebillout
6502331170 Add pacman action
Add a pacman action, whereby pacman is the Arch package manager akin to
apt for Debian. This allows us to install packages, after the initial
pacstrap action (or equivalent).

Akin to the pacstrap action - there is a Debian package for pacman. Plus
upstream pacman continuously builds and tests pacman against Arch,
Fedora and Debian.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>

v2: [Ed]
 - Drop --color never as it is implicit
 - Drop --noprogressbar likewise
 - Reorder remaining arguments
 - Style tweaks

v3: [Emil]
 - Run the lot through gofmt -s -w
 - Commit message
 - Sort the action alphabetically

v4: [Emil]
 - Drop quotes around pacman

Signed-off-by: Ed Smith <ed.smith@collabora.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
---

Similar to the pacstrap action, the formatting is a bit weird props to
gofmt. Happy to drop that hunk.
2022-12-09 12:17:56 +00:00
Emil Velikov
c5b570b1c3 Add pacstrap action
Add a pacstrap action, which is the Arch variant of debootstrap.
In other words, this allows us to bootstrap an Arch image.

Bear in mind that the tool pacstrap is a thin wrapper around the pacman
package manager. Both of those are separate projects and are available
as Debian packages, in case one wants to give them a try.

This is loosely based on the work by Arnaud Rebillout

Note: the action works only within a fakemachine instance, making it
work outside is doable but left for a later day.

v2:
 - drop pacman-key capitalisation

v3:
 - drop pacstrap capitalisation

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
---
Some of the changes made:
 - Commit message
 - Remove all pacman.conf and mirrorlist generation
 - Use drop-in user files for ^^
 - Remove custom flags passed to pacman-key, pacstrap
 - Add Verify hook for validation
 - Sort the action
 - Run through gofmt -s -w
 - Add PreNoMachine() stage

NOTE: the funky formatting of the pacstrap_action.do header is due to
gofmt. Can drop those changes if people prefer.
2022-12-09 12:17:35 +00:00
Jakob Unterwurzacher
b77d745dc1 README.md: add benchmarks for the different backends
For me as a user it was unclear to me what kind of penalty there
is for not allowing access to /dev/kvm, so I timed how long
building pine-a64-plus/debian.yaml takes for the different
backends.

I did not use the rpi recipes as they spend a lot of time downloading
firmware blobs.

The tested debos version is 82c36d07b3
(current main at the time of writing) and the benchmarks have been
run on an otherwise-idle box with the following specs:

* Debian Bullseye AMD64 (kernel 5.10.92)
* go version go1.15.15 linux/amd64
* 4 x Intel(R) Pentium(R) CPU G4560T @ 2.90GHz
* Fast M.2 SSD
* 24 GiB of RAM

For posterity, the very simple benchmark script is attached below:

  #!/bin/bash
  set -eux
  time sudo debos --disable-fakemachine debian.yaml
  time debos -b kvm debian.yaml
  time debos -b uml debian.yaml
  time debos -b qemu debian.yaml
2022-10-01 18:29:03 +02:00
Christopher Obbard
76e0bf8422 Format the example code using a codeblock
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:07:30 +01:00
Christopher Obbard
573dbb899c Update description for the example recipes
These days there are more example recipes then just for
the Raspberry Pi 3; explain that.

Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:06:08 +01:00
Christopher Obbard
180af4b9f5 Don't add non-free suite to example recipe
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:05:30 +01:00
Christopher Obbard
0a4af22b06 Update example Debos recipe suite to bookworm
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:05:00 +01:00
Christopher Obbard
ef07528ea5 Update installation instructions to use go install
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:04:29 +01:00
Christopher Obbard
9185905226 Fix spelling of suits
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2022-06-30 09:04:08 +01:00
Christopher Obbard
ce6d00831a readme: add information about fakemachine backend choice
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2020-12-03 11:28:13 +01:00
Christopher Obbard
ab58845a55 readme: refresh readme with new command-line arguments
The readme has got a bit out-of-sync with the help command; update the
readme for the new options and descriptions.

Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
2020-12-03 11:28:13 +01:00
Andrej Shadura
42711f357b Synopsis, not sypnosis
Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
2020-12-02 14:26:05 +01:00
Frédéric Danis
55070b66e0 docker: Container should be used as an executable
The usage of the container as an executable does not seems to be
straightforward.
Add a warning in docker/README.md and add container installation reference
in main README.md.

Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
2019-04-16 15:49:00 +02:00
Frédéric Danis
74df488fb6 actions: Add recipe action
This action includes the recipe actions at the given path, and can
optionally overrides or adds new template variables.

To allow recipes to operate both stand-alone and when included, template
variable "included_recipe" is added and set to "true" to indicate that
the recipe is part of a longer chain.
This allows a recipe to skip the unpack step if it's not the first to be
executed or to optionally skip a pack action when it's not the last.

For compatibility, both the parent recipe and all included recipes have
to be for the same architecture.

Limitations of combined recipes are equivalent to limitations within a
single recipe (e.g. there can only be one image partition action).

Print-recipe option is saved in DebosContext to allow each "recipe action"
to print its source during Parse.

Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
2019-03-19 22:50:23 +01:00
Frédéric Danis
baefab7f33 cmd: Update README with new options
Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
2019-02-19 12:08:49 +01:00
Frédéric Danis
938c658b41 cmd: Add 'verbose' option
This 'verbose' option displays the actions used for the build

Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
2019-02-19 11:54:55 +01:00
Frédéric Danis
3cac6f8bb3 Revert "cmd: Add options to print recipe used for build"
This reverts commit 9522b3bfc6485289516fd5ced7f08f79cd2d8df2.
2019-02-19 11:54:55 +01:00
Frédéric Danis
9db472dc14 cmd: Add options to print recipe used for build
This adds debos options:
- --print-recipe to print final recipe
- --dry-run to compose final recipe to build but without any real work
  started

Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
2019-02-19 11:54:55 +01:00
Peter Senna Tschudin
d5de0f1f46 Add support to environment variables
This change makes debos read a predefined set of environment variables
from the host and propagates it to fakemachine. The set of environment
variables is defined by environ_vars on cmd/debos/debos.go. Currently
the list of environment variables is configured to the proxy environment
variables as documented here[1]:

  http_proxy, https_proxy, ftp_proxy, rsync_proxy, all_proxy, no_proxy

While the elements of environ_vars are in lower case, for each element
both lower and upper case variants are probed on the host, and if found
propagated to fakemachine. So if the host has the environment variables
HTTP_PROXY and no_proxy defined, both will be propagated to fakemachine
respecting the case.

This patch also adds --environ-var and -e command line options that can
be used to specify, overwrite, and unset environment variables for
fakemachine with the syntax:

  $ debos -e ENVIRONVAR:VALUE ...

To unset an enviroment variable, or in other words, to prevent an
environment variable to be propagated to fakemachine, use the same
syntax without a value. debos accept multiple -e simultaneously.

[1] - https://wiki.archlinux.org/index.php/proxy_settings

This change depends on:

  8b7eea7096cd015771cf9862647b7cd04bb41904 - machine.go: Add support to
  environment variables

on fakemachine repository.

Signed-off-by: Peter Senna Tschudin <peter.senna@collabora.com>
2018-11-05 09:28:46 +01:00
Maciej Pijanowski
b8c211149d README.md: add install dependencies
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>

`debootstrap` and git are quite obvious, but I think worth mentioning
`systemd-container` - `systemd`-nspawn was missing
`qemu` packages are required by `fakemachine`
2018-07-26 21:28:06 +02:00
Niklaus Giger
b2448e8fd2 Document installation under Debian 2018-06-28 10:21:46 +02:00
Ana Guerrero Lopez
b19980c41a README.md: Add more information about debos and a simple example
Signed-off-by: Ana Guerrero Lopez <ana.guerrero@collabora.com>
2018-06-14 10:53:25 +02:00
Héctor Orón Martínez
e671a2ba54 README.md: add links to actions and examples
Signed-off-by: Héctor Orón Martínez <zumbi@debian.org>
2017-11-02 16:30:13 +01:00
Sjoerd Simons
2da9970f14 Rename to debos
Yaib (yet another image builder) was always a temporary name, while I
suck at naming debos seems like a pretty good name that isn't overly
confusing (yaib is also the name of an irc bot).

With the renaming I'm also considering the current yaml format and
actions as stable, which means no backwards incompatible will be done
from this point onwards without changing the major version (1)
2017-08-02 12:09:15 +02:00