Skip to main content
Version: 1.13.x

RPM (experimental)

Collects RPM packages.

Details

Transfer Tag

rpm

Supported PURLs

rpm

System Dependencies

NONE

Transfer File Example

---
schemaVersion: v1
kind: transfer

stages:
collect:
plugins:
- name: rpm
config:
process_timeout: 60

max_processes: 3

RPM Collector Plugin​

The experimental RPM package collector plugin can be enabled through use of the --experimental or -x command line option to hopctl, or by setting the HOPPR_EXPERIMENTAL environment variable to a non-empty value (typically "1" by convention).

The experimental plugin does not depend on the presence of command line tools such as dnf, yum, or zypper. It collects packages using web requests to the repository endpoint(s) specified in the manifest file, and can be run from any platform.

Configuration Options​

OptionDetails
base_archString. Value for the $base_arch dnf variable to parse to in local repositories. Default: None
release_verString. Value for the $release_ver dnf variable to parse to in local repositories. Default: None
vars_dirPath. Directory to look for dnf variable files when parsing local repositories.Default: /etc/dnf/vars, /etc/yum/vars

Proxy and Certificate Configuration​

No .repo configuration file(s) are required, but the following environment variables should be set if necessary.

VariableDetails
HTTP_PROXY / http_proxyProxy server and port to use for HTTP web requests
HTTPS_PROXY / https_proxyProxy server and port to use for HTTPS web requests
NO_PROXY / no_proxyComma-separated list of hostname patterns that should bypass the proxy server
REQUESTS_CA_BUNDLEPath to file containing trusted certification authority certificates

Repository Configuration​

Repositories can be specified either locally in /etc/yum.repos.d/*.repo or in the manifest file as a URL path up to, but not including, the repodata directory.

---
schemaVersion: v1
kind: Manifest

metadata:
name: Example Manifest File
version: "1.0.0"
description: This is an example manifest.yml file

sboms:
- url: https://example.com/example-bom.json
- local: ../example-bom.json

repositories:
rpm:
- url: https://dl.rockylinux.org/vault/rocky/8.6/AppStream/x86_64/os
- url: https://dl.fedoraproject.org/pub/fedora/linux/releases/39/Everything/x86_64/os

Authentication Configuration​

If using cert authentication, you can set paths to your cert and key in the repo config file. To specify credentials, you need a credentials file.

Sample credentials file:

---
schemaVersion: v1
kind: Credentials

metadata:
name: Registry Credentials
version: v1
description: Sample credentials file

credential_required_services:
- url: registry.gitlab.com
user_env: CI_REGISTRY_USER
pass_env: CI_REGISTRY_PASSWORD