LinuxCommandLibrary

koji-download-build

Download a Koji build

TLDR

Download all RPMs from a specific build

$ koji download-build [BuildID|RPM|NVR]
copy

Download RPMs signed with the given key
$ koji download-build [BuildID|RPM|NVR] --key [key]
copy

Only download RPMs for given arch
$ koji download-build [BuildID|RPM|NVR] --arch [x86_64,aarch64,noarch,...]
copy

Download the given RPM
$ koji download-build [RPM] --rpm
copy

Display help
$ koji download-build [[-h|--help]]
copy

SYNOPSIS

koji-download-build [OPTIONS] <build_ID_or_NVR> [...]

PARAMETERS

--all
    Download all available artifacts (RPMs, SRPMs, debuginfo, logs, etc.) for the specified build.

--rpm
    Download only the binary RPM packages. This is the default if no specific type is chosen.

--srpm
    Download only the Source RPM (SRPM) packages.

--debuginfo
    Download only the debuginfo RPM packages.

--logs
    Download build log files.

--arch <arch>
    Filter downloaded RPMs by a specific architecture (e.g., `x86_64`, `noarch`). This option can be used multiple times.

--dstdir <directory>
    Specify the destination directory where artifacts will be saved. Defaults to the current working directory.

--scratch
    Include artifacts from scratch builds (temporary builds not intended for release).

--build
    Explicitly treat arguments as Koji build IDs (numeric).

--nvr
    Explicitly treat arguments as NVR (Name-Version-Release) strings.

--fail-on-missing
    Exit with an error status if a requested artifact type (e.g., debuginfo) is not found for a build.

-h, --help
    Display a help message and exit.

--version
    Show program's version number and exit.

DESCRIPTION

The `koji-download-build` command is a client-side utility within the Koji build system ecosystem, primarily used to retrieve various artifacts from completed software builds. It enables users to download RPM packages, Source RPMs (SRPMs), debuginfo packages, build logs, and other outputs for a specified build. Builds are identified by their unique Name-Version-Release (NVR) string or numeric ID. This tool is indispensable for developers, QA engineers, and release managers in environments utilizing Koji for package building, allowing for efficient inspection, testing, and redistribution of built components. It communicates with the Koji hub to locate and download files, offering options to filter by architecture, artifact type, or specify a custom destination directory.

CAVEATS

Requires network connectivity to the Koji hub and appropriate permissions to access build information and artifacts.
Can download large amounts of data, especially with the `--all` option, potentially consuming significant disk space and bandwidth.
The exact set of downloadable artifacts depends on the build type and what was produced during the Koji build process.

KOJI HUB INTERACTION

This command communicates with the central Koji hub server to query detailed build information and retrieve the URLs for build artifacts. These artifacts are typically hosted on a separate content delivery network (CDN) or web server, ensuring efficient and scalable downloads.

TYPICAL USAGE

It is frequently used in automated scripts for tasks such as testing, staging, or creating custom package repositories. For example, to download all `x86_64` RPMs and their corresponding debuginfo for `my-package-1.0-1.fc39`, one would execute: `koji-download-build --rpm --debuginfo --arch x86_64 my-package-1.0-1.fc39`.

HISTORY

Koji is an open-source build system primarily developed by Red Hat for building Fedora, CentOS, and RHEL packages, aiming for a reliable, distributed, and scalable RPM build environment. `koji-download-build` emerged as an integral part of the Koji client utilities, designed to provide a straightforward interface for retrieving the diverse outputs of Koji builds. Its development has consistently focused on robustness, flexibility in artifact selection, and seamless integration with the Koji hub's API, evolving to support various artifact types like RPMs, SRPMs, debuginfo, and even newer formats such as container images and Golang modules.

SEE ALSO

koji(1), koji-build(1), koji-list-builds(1), createrepo(8)

Copied to clipboard