Skip to content

Latest commit

 

History

History
92 lines (64 loc) · 3.78 KB

File metadata and controls

92 lines (64 loc) · 3.78 KB

Package Groups

Package groups let you apply shared configuration to named sets of binary packages. They are defined under [package-groups.<name>] in the TOML configuration.

Package groups are evaluated at build time, after the binary RPMs are produced. They are analogous to component groups, which apply shared configuration to sets of components.

Field Reference

Field TOML Key Type Required Description
Description description string No Human-readable description of this group
Packages packages string array No Explicit list of binary package names that belong to this group
Default package config default-package-config PackageConfig No Configuration inherited by all packages listed in this group

Packages

The packages field is an explicit list of binary package names (as they appear in the RPM Name tag) that belong to this group. Membership is determined by exact name match — no glob patterns or wildcards are supported.

[package-groups.devel-packages]
description = "Development subpackages"
packages = ["libcurl-devel", "curl-static", "wget2-devel"]

[package-groups.debug-packages]
description = "Debug info and source packages"
packages = ["curl-debuginfo", "curl-debugsource", "wget2-debuginfo"]

Note: A package name may appear in at most one group. Listing the same name in two groups produces a validation error.

Package Config

The [package-groups.<name>.default-package-config] section defines the configuration applied to all packages matching this group.

PackageConfig Fields

Field TOML Key Type Required Description

| Publish settings | publish | PublishConfig | No | Publishing settings for matched packages |

Publish Config

Field TOML Key Type Required Description
Channel channel string No Publish channel for this package. Use "none" to signal to downstream tooling that this package should not be published.

Resolution Order

When determining the effective config for a binary package, azldev applies config layers in this order — later layers override earlier ones:

  1. Project default-package-config — lowest priority; applies to all packages in the project
  2. Package group — the group (if any) whose packages list contains the package name
  3. Component default-package-config — applies to all packages produced by that component
  4. Component packages.<name> — highest priority; exact per-package override

Note: Each package name may appear in at most one group. Listing the same name in two groups produces a validation error.

Example

# Set a project-wide default channel
[default-package-config.publish]
channel = "rpm-base"

[package-groups.devel-packages]
description = "Development subpackages"
packages = ["libcurl-devel", "curl-static", "wget2-devel"]

[package-groups.devel-packages.default-package-config.publish]
channel = "rpm-build-only"

[package-groups.debug-packages]
description = "Debug info and source"
packages = [
    "libcurl-debuginfo",
    "libcurl-minimal-debuginfo",
    "curl-debugsource",
    "wget2-debuginfo",
    "wget2-debugsource",
    "wget2-libs-debuginfo"
]

[package-groups.debug-packages.default-package-config.publish]
channel = "rpm-debug"

Related Resources