getdeps

command
v0.0.0-...-78298d5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2023 License: MIT Imports: 21 Imported by: 0

README

getdeps

getdeps is a tool to fetch OSF dependencies and put them in the local directory so that it is ready to build. It helps with component versioning and multiple configurations, and uses JSON to describe a configuration.

OSF is made by multiple components, for which you may or may not have the full source code. With getdeps you can specify which components you want, along with their exact versions and locations (e.g. URL or git repository).

Quickstart

cd cmd/getdeps
go build
./getdeps --config ../../configs/qemu-x86_64.json
cat generated_versions.json

The above commands will fetch the required components to build OSF for QEmu with machine type q35 on x86_64. Each component is fetched in an homonym directory in the current directory where getdeps is run.

Components

Currently getdeps supports the following components:

  • coreboot: from the coreboot project, this component is currently used to initialize the platform, and to load a LinuxBoot payload, made by the kernel and initramfs components below. It is fetched via git.
  • kernel: this is based on the Linux kernel. You can specify a git repository or a tarball.
  • initramfs: based on u-root, an embedded environment with various bootloaders that run in userspace on the firmware kernel.

Each component is controlled by the configuration files described below.

Configuration files

TODO

URL overrides

TODO

Documentation

Overview

getdeps is a tool to fetch the dependencies necessary to build OSF (Open System System Firmware). It works by parsing a JSON configuration containing the definitions of all the components that should be fetched. This tool also generates a JSON file containing all the components' versions, suitable for using in the `internal_versions` VPD variable for OSF.

The supported components currently are: - coreboot - kernel (linux) - initramfs (u-root)

For each component it is possible to specify the source (e.g. the git repo or package URL), its version (e.g. the branch and git commit hash, or the package version and hash).

It is also possible to specify an URL overrides file, which will replace the corresponding component's URL with the override. This is useful if you want, for example, use alternative mirrors and repositories for a specific component.

The hash mode allows you to be strict or permissive in the hash validation, and, when used in update mode, it lets you use the latest commit hashes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL