The host ca-certificates is needed to download the SPDX schema on
CycloneDX's GitHub when using Buildroot's host Python, see
urllib.request.urlretrieve(SPDX_SCHEMA_URL, SPDX_SCHEMA_PATH) in
utils/generate-cyclonedx.
Note that unlike the target package which uses a _TARGET_FINALIZE_HOOKS
since commit 2bc8e72baf ("package/ca-certificates: create the bundle
as target-finalize hook"), the host package doesn't have this option as
there's no such hook for host packages. Therefore, the target's
CA_CERTIFICATES_INSTALL_TARGET_CMDS and CA_CERTIFICATES_GEN_BUNDLE are
merged and adapted into HOST_CA_CERTIFICATES_INSTALL_CMDS.
This of course has the same shortcomings as the target package had
before commit 2bc8e72baf ("package/ca-certificates: create the bundle
as target-finalize hook").
The adaptations were:
- replaced $(TARGET_MAKE_ENV) with $(HOST_MAKE_ENV)
- replaced $(TARGET_DIR) to $(HOST_DIR)
- replaced $(HOST_DIR)/usr with $(HOST_DIR)
- replaced find usr/share/ca-certificates with find share/ca-certificates
(since it's done from within $(HOST_DIR)
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
The "proxycommand" binary is used with SSH clients to connect to
ugetty over serial. Building it as a host package makes it easy to use
with Buildroot builds including ugetty on the target, without needing
a separate install.
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
[Peter: use install -D]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The host mkfs.xfs is needed to create XFS root filesystems
in Buildroot.
Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Add the reference command line tools for interacting with Sigsum
signature transparency logs.
Signed-off-by: Florian Larysch <fl@n621.de>
[Julien:
- select sigsum-verify if all other tools are deselected
- split and sort HOST_SIGSUM_GO_BUILD_TARGETS
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
The starfive-spltool host package was added to Buildroot to create a
bootable image for the Starfive JH7110 SoC.
Mainline U-Boot can now build an image without it so it is not required
anymore.
Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
[Julien: remove DEVELOPERS entry]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit adds a package for Snagboot, the open-source
vendor-neutral recover and reflashing tool for embedded targets. We
install the dependencies needed for snagrecover and snagflash, but we
don't bother installing the dependencies of the GUI-based snagfactory,
as that would require Kivy on the host, which is Qt based.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
casync-nano is an implementation of a subset of the features of casync,
optimized for performing OTA updates on embedded systems.
Signed-off-by: Florian Larysch <fl@n621.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
There are a lot of interconnected changes in these releases:
Since 2.79.0, the introspection (i11n) data for libglib2 was moved out
of gobject-introspection (GOI) and into libglib2 itself, thus building
libglib2 with i11n needs tools provided by GOI [0].
However, GOI needs libglib2, but it is content with a libglib2 that
does not have i11n. So we introduce a new package, libglib2-bootstrap,
that provides a minimalist libglib2 that is enough to build GOI, build
GOI, then build the final, complete libglib2 with i11n.
However, not every package needs i11n, so we make that optional: if GOI
is enabled, libglib2 will have i11n, otherwise it won't.
This means the dependency ordering has changed: GOI used to
build-depend on libglib2, but now that's the other way around. This
will cause issues with packages that build-depend only on GOI and then
expect a libglib2 with i11n; those will only get a basic libglib2
without i11n at build time, but a full one at runtime. Those packages
will have to be fixed to also include a build dependency on libglib2.
The version bump between libglib2 and GOI must be done in lock-step,
because newer GOI does not support an older libglib2 and, as seen
above, newer libglib2 has the data previously provided by older GOI.
As a consequence of now generating its own i11n data, libglib2 needs to
be able to run target programs during the build, to extract data layout
and generate i11n data, a bit like GOI does [1]. So we provide a qemu
wrapper similar to the one in nodejs-src, and use that as meson's
exe_wrapper.
Except for our first patch, the other libglib2 patches were backports,
and are present upstream already, so we can drop them; the first patch
needs being refreshed.
We also move the remaining patch to a versioned sub-directory, so that
it is easier to share the patches between libglib2-bootstrap and
libglib2, should we need to add more patches in the future.
Drop the "giscanner: remove dependency on distutils.msvccompile"
patch, included upstream.
Updated hash for giscanner/scannerlexer.l is due to code changes, no
change in license, see [2] (two commits in 2024).
[0] https://gitlab.gnome.org/GNOME/glib/-/blob/2.79.0/NEWS?ref_type=tags#L8-17
[1] technically, this should not be needed if libglib2 only uses the
wrappers provided by GOI: g-ir-scanner et al. However, its
meson.build explicitly checks that it can run generated binaries
through the exe_wrapper. Investigating if that's really needed is
left as an exercise for the interested party: in practice, we will
have to be able to run via host-qemu, so this does not add any build
time overhead.
[2] https://gitlab.gnome.org/GNOME/gobject-introspection/-/commits/1.82.0/giscanner/scannerlexer.l?ref_type=tags
Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Tested-by: Marcus Hoffmann <buildroot@bubu1.eu>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
ARM gnu toolchain for bare metal arm32 target is only available for
x86_64 and aarch64 hosts. Introduce a new option to disable packages
using this toolchain on unsupported hosts.
[Romain: improve commit log]
Signed-off-by: Bryce Johnson <bryce@redpinelabs.com>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Also needs a host version to be able to generate the binary config file.
The host version is user-selectable so the user has the option of
running the compiler in a post-build script some other way.
We don't install the config file compiler tipidee-config on target.
Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
[Arnout:
- Remove BR2_PACKAGE_TIPIDEE_CONFIGURATION, use empty value of
BR2_PACKAGE_TIPIDEE_CONFIG_FILE to flag false.
- Rename BR2_PACKAGE_TIPIDEE_CONFIGURATION_FILE to
BR2_PACKAGE_TIPIDEE_CONFIG_FILE.
- Default BR2_PACKAGE_TIPIDEE_CONFIG_FILE to empty.
- Fix spelling of BR2_PACKAGE_HOST_TIPIDEE.
- Add J. to DEVELOPERS.
- Install in /usr instead of /.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
skopeo is a command line utility that performs various operations on
container images and image repositories.
We introduce it as a host-only package, as the expected usage is to
transform an OCI image into a docker image, or to help in uploading an
OCI image to a (local) docker daemon or to a docker registry, for
example, in a post-build script.
As such, it needs a prompt in the host packages section.
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
We need host-qt6base with Gui support when building host-qt6shadertools,
otherwise the build is skipped and no qsb host tool is generated.
qt6shadertools fail to build if qsb is not available.
Signed-off-by: Roy Kollen Svendsen <roykollensvendsen@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
The SWTPM package provides TPM emulators with different front-end
interfaces to libtpms. TPM emulators provide socket interfaces (TCP/IP and
Unix) and the Linux CUSE interface for the creation of multiple native
/dev/vtpm* devices.
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
[yann.morin.1998@free.fr: disable tests]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Move every go compiler-related packages into a newly created
package/go/ subdirectory.
This subdirectory structure moves the GO_VERSION variable into the
common package/go/go.mk file. In the next commits, host-go will be
turned into a virtual-package and the common GO_VERSION force the
providers to use the same Go compiler version.
Common variables to all providers are kept in package/go/go.mk and
package/go/Config.in.host.
Also, the subdirectory structure forces the evaluation of the common
GO_VERSION before the providers access it.
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This patch adds a new package for the Starfive SPL tool. It is used to
add a header to the Secondary Program Loader for platforms based on
the Starfive JH7110 SoC.
Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add a third bootstrap stage with Go1.21.x necessary for go1.22 bootstrap.
go-bootstrap-stage1 is Go1.4.x, the final version to support bootstrap using a C
compiler (later versions require the Go compiler for bootstrapping).
See: https://go.dev/doc/install/source#bootstrapFromSource
go-bootstrap-stage2 is Go 1.19.13, the last version to support bootstrap using
the Go1.4.x compiler.
go-bootstrap-stage3 is Go 1.21.8, the last version to support bootstrap using
the Go1.19.13 compiler. Go 1.20 requires a minimum of go 1.17.13 to bootstrap.
See: https://go.dev/doc/go1.20#bootstrap
This patch is in preparation for bumping the host-go package to >go1.22.x, which
requires a minimum of Go1.20.x for bootstrap.
See: https://go.dev/doc/go1.22#bootstrap
Signed-off-by: Christian Stewart <christian@aperture.us>
[Arnout: add GOCACHE definition]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Patrick Oppenlander <patrick.oppenlander@gmail.com>
[Peter: Fix check-package warnings, move to "Shell and utilities" and add
DEVELOPERS entry]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This tool is needed by some SoCs to sign the bootloader.
See the list of supported SoCs:
https://github.com/LibreELEC/amlogic-boot-fip
The variable BR2_PACKAGE_HOST_AMLOGIC_BOOT_FIP_DEVICE is used to specify
for which device this package needs to be used.
This tool uses pre-compiled binaries in order to sign the bootloader.
These binaries are provided under a proprietary license that prohibits
any redistribution of the resulting images.
A similar tool was tried to be added in the past:
http://patchwork.ozlabs.org/project/buildroot/patch/1533545408-11248-2-git-send-email-narmstrong@baylibre.com/
This time however a license file is present which can be used by
make legal-info. Additionally, acs_tool.pyc was replaced by acs_tool.py
and is therefore not compiled anymore.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
[Romain:
add AMLOGIC_BOOT_FIP_REDISTRIBUTE = NO
add qstrip for BR2_PACKAGE_HOST_AMLOGIC_BOOT_FIP_DEVICE
remove build-fip-all.sh copy, not needed
factorize file copy in HOST_AMLOGIC_BOOT_FIP_INSTALL_CMDS
update commit log with the github url where we can find the list of supported SoCs.
]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Add a host option to build the xml2cpp-codegen part of the
sdbus-cpp package for use in creating adaptor and proxy
implementations from the D-Bus IDL.
Signed-off-by: Charles Hardin <ckhardin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
flutter-sdk-bin is a collection of host tools and plugins used to compile
flutter applications.
- As this is a collection of pre-compiled tools, append -bin to the end of the
package name.
- We must set the HOME directory variable to the sdk directory or else the
flutter dart binaries place .dart, .dart-sdk, and .flutter in ~/.
- set --clear-features, --no-analytics and --disable-telemetry first to disable
google tracking as soon as possible.
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
[yann.morin.1998@free.fr:
- set FLUTTER_SDK_BIN_PUB_CACHE for other packages to make use of it
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Chromium and Chromium OS use a package of scripts called
depot_tools to manage checkouts and code reviews. This package
also includes the gclient utility.
gclient is a Python script to manage a workspace of modular dependencies that
are each checked out independently from different subversion or git
repositories. Features include:
- Dependencies can be specified on a per-OS basis.
- Dependencies can be specified relative to their parent dependency.
- Variables can be used to abstract concepts.
- Hooks can be specified to be run after a checkout.
- .gclient and DEPS are Python scripts. You can hack in easily or add
additional configuration data.
.gclient file: It's the primary file. It is, in fact, a Python script. It
specifies the following variables:
- solutions: an array of dictionaries specifying the projects that will be
fetched.
- hooks: additional hooks to be run when this meta checkout is synced.
- target_os: an optional array of (target) operating systems to fetch
OS-specific dependencies for.
- cache_dir: Primarily for bots, multiple working sets use a single git
cache.
gclient is necessary for checking out the flutter-engine source code, as the
release tarballs provided on the flutter-engine github are in no state to
compile. Google expects the use of gclient to download a source directory
structure suitable to build the Flutter engine.
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
The Buildroot icicle kit configuration uses the Hart Software
Service's (HSS) payload generator tool. This tool creates a formatted
payload image for the HSS zero-stage bootloader on PolarFire SoC,
given a configuration file and a set of ELF binaries. The
configuration file is used to map the ELF binaries or binary blobs to
the individual application harts (U54s). Add the HSS payload generator
as a host package to support this.
Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
Reviewed-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
composer describes itself as a dependency manager for PHP, it is used
by projects such as CakePHP.
Signed-off-by: Nicolas Carrier <carrier.nicolas0@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Add swugenerator as host utility to generate images for swupdate with
all the possible options available like encryption, passkey etc.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Make the host variant of crudini package. This can be useful in
post-{build,image} scripts.
Signed-off-by: Konstantin Menyaev <KAMenyaev@sberdevices.ru>
Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>
[yann.morin.1998@free.fr: select python3, don't depend on it]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Make the host variant of python-iniparse as host-crudini dependency.
Note: usually, we would not have needed to add a Config.in.host,
because it is jsut a library, but since there is an Config.in.host
for python-six, we need to select it, so we need an host entry.
Signed-off-by: Konstantin Menyaev <KAMenyaev@sberdevices.ru>
Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>
[yann.morin.1998@free.fr:
- add the note
- reorder alphabetically
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
The Jetson AGX Orin python script to flash requires host python-pyyaml.
Add a Config.in.host option for the host python-pyyaml package.
BR2_PACKAGE_HOST_PYTHON_PYYAML
Signed-off-by: Christian Stewart <christian@paral.in>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This patch adds Xilinx bootgen as a host package to buildroot.
bootgen is a required utility for generating a boot.bin for
Xilinx versal products.
In addition, for developers who wish to use secure boot with
Xilinx SoC products such as zynq and zynqmp, bootgen has a
more complete offering in secure boot features than the u-boot
mkimage utility.
https://github.com/Xilinx/bootgen
Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
mosquitto can be configured to use password files. Those have a very
trivial layout, with one "username:password" tuple per line, not unlike
Apache's htpasswd file format, but unlike htpasswd files, the password
can be either in clear (boo!), or encrypted (by calling into openssl's
libcrypto).
Encryption of passwords is done with an ad-hoc tool, mosquitto_passwd,
again very like Apache's htpasswd, but the encrypted form is different
(of course). This encryption is handled by mosquitto_passwd, which can
create, update, or delete users, all while storing their encrypted
password, or it can also convert a password file with clear-text
passwords into a password file with encrypted passwords, e.g. it turns
each "foo:bar" entry to their corresponding encrypted form, like
"foo:$7$101$yLPgk5fn46d....==".
It can be very interesting to maintain a clear-text DB of
users:passwords in configuration management [0], and only convert it to
encrypted passwords when embedded on the target.
Add a host variant for mosquitto, which only installs mosquitto_passwd.
[0] ensuring safety, confidentiality, and integrity of that DB is left
as an exercise to the user, and is clearly out of scope for Buildroot,
like storing the root password in the .config is.
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Titouan Christophe <titouanchristophe@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Dracut is the tool used by desktop distributions to build initrds.
In the embedded world, it can be very useful, too, for instance when
wanting to create an initramfs for a system recovery mode.
Whereas it is definitively possible to achieve this with buildroot, the
process is to have a dedicated buildroot configuration for that, and
perform a full build. Instead of doing that, dracut can pick the needed
binaries/shared libraries, configuration files, or kernel modules from
the 'target' directory.
The advantage is to save build time, and also to have a consistency
between the packages versions taken for the recovery and the production
filesystem.
The principle of dracut is based on the so-called 'dracut modules'. The
modules determine what will be included in the initramfs. For example,
one of dracut's modules checks the kernel modules that are included and
also includes the corresponding firmware blobs.
On the host, they are on host/lib/dracut/modules.d
Each directory as a prefix number for the order of execution, and
at least a "module-setup.sh" script.
Dracut sources all of them, and typically calls the "check()" function,
which is the placeholder for required binaries (that are aimed to be
polulated in the initrd), then the "depends()" function, that lists
other modules to depend on, and the "install()" function, that makes
the actual work.
Dracut was initially thought to work with systems using systemd,
but it can also work without it. Do to so, every "systemd-xxx"
module must be disabled in the dracut configuration file. For
convenience, the 05busybox-init module is provided, to support
busybox init system. Note that this module should *not* be enabled when
using systemd init. It is therefore only installed if busybox init is
selected.
Musl and uClibc make assumptions about the existence of some symlinks
that are not discoverable with readelf. Therefore, another module
05libc-links is provided that creates those links. The module is
installed regardless of which libc is used - the script itself discovers
if the links need to be installed based on which libc is found.
Signed-off-by: Thierry Bultel <thierry.bultel@linatsea.fr>
[arnout@mind.be: many changes]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Adam Duskett <aduskett@gmail.com>
[yann.morin.1998@free.fr: some additional fixups]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Users may want to use buildkitd and buildkitctl to build images on the host.
Adds package host-moby-buildkit and BR2_PACKAGE_HOST_MOBY_BUILDKIT.
Signed-off-by: Christian Stewart <christian@paral.in>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Christian Stewart <christian@paral.in>
[yann.morin.1998@free.fr:
- drop unneeded _BIN_NAME and _INSTALL_BINS
- s/OCP/OCI/
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
UUU (Universal Update Utility) is a Freescale/NXP I.MX Chip image deploy
tools. It is an evolution of MFGTools (aka MFGTools v3). For this and
for backward compatibility we have created a new package instead of
updating the mfgtools package.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
[Arnout: fix check-package warnings]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Add the kflash Kendryte K210 UART ISP Utility as a host package to allow
users to program their board boot ROM or SRAM with built images.
The kflash utility is available through the pypi.org python package
index. The project is homepage is: https://github.com/vowstar/kflash.py.
Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This new package provides "lzma_alone" host binary based on the original
LZMA SDK. It provides few extra options when compared to the LZMA Utils
/ XZ Utils project "lzma" binary (already packaged as the "lzma").
This packaging schema (LZMA SDK with lzma -> lzma_alone rename) follows
Debian's solution. Please note that Debian also uses LZMA SDK for the
base "lzma" tool which may be considered for Buildroot too - as an
independent change. Similar packaging is also used by Ubuntu & Arch.
lzma_alone is a requirement for preparing firmware images for some
Broadcom based home routers with a picky CFE bootloader. It has limited
LZMA support and building compatible images requires specifying
dictionary size and lc/lp/pb LZMA values manually.
Version 9.22 is used as it's the last release using .tar.bz2 format. The
same version is used by Debian.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
[yann.morin.1998@free.fr:
- add the upstream sha1, add comments
- fix license
- add license file and its sha256
- fix coding styles
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Users may want to debug Go programs using dlv on the host machine.
Adds package host-delve and BR2_PACKAGE_HOST_DELVE.
Signed-off-by: Christian Stewart <christian@paral.in>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
pahole is a tool used to show data structure embedded in debugging
information formats like DWARF.
It is notably needed by the Linux kernel to generate BPF Type
Format (BTF) information used by Compile Once - Run Everywhere (CO-RE)
BPF tools.
To be built, pahole needs __LIB to be set to lib at stated in its
README.
Signed-off-by: Francis Laniel <flaniel@linux.microsoft.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>