Skip to content

feat: modernize RPM spec for Fedora Go packaging guidelines - #165

Merged
marcusburghardt merged 2 commits into
complytime:mainfrom
marcusburghardt:opsx/rpm-spec-modernization
Aug 27, 2026
Merged

feat: modernize RPM spec for Fedora Go packaging guidelines#165
marcusburghardt merged 2 commits into
complytime:mainfrom
marcusburghardt:opsx/rpm-spec-modernization

Conversation

@marcusburghardt

@marcusburghardt marcusburghardt commented Aug 26, 2026

Copy link
Copy Markdown
Member

Summary

Modernizes complytime-providers.spec to conform to Fedora Go Packaging Guidelines, preparing the package for Fedora submission.

Changes

  • go-vendor-tools adoption: Replace manual %license directives with %go_vendor_license_filelist and add go-vendor-tools.toml for vendored license detection (yaml.v3 override)
  • Build macros: Replace raw go build with %gobuild macro (PIE, RELRO, FORTIFY, proper debuginfo)
  • Source handling: Switch from raw GitHub URL to forge macros (%{gosource}) with separate vendor archive (Source1)
  • License aggregation: License: Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
  • Main package: Introduce complytime-providers main package for shared license files; sub-packages require it
  • Test macro: Replace go test with %gocheck2 + %bcond check toggle
  • Release numbering: Switch to %autorelease
  • Dependencies: Bump complyctl from >= 0.0.8 to >= 1.0.0
  • Fedora 43 compat: Conditional Go 1.25 workaround with TODO(2027-01) sunset trigger
  • Documentation: CHANGELOG.md infrastructure entry, AGENTS.md project structure update

Verification

go_vendor_license --config go-vendor-tools.toml report expression
# Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0

make build && make test
# BUILD PASS, TEST PASS (28 packages)

OpenSpec artifacts

Change: openspec/changes/rpm-spec-modernization/

  • Proposal, design (6 decisions), and tasks (17 sub-tasks)
  • Spec review: passed (6 Divisor agents)
  • Code review: passed (3 Divisor agents)

Review Hints

This PR can be more easily tested in a Fedora VM using complytime-demos: complytime/complytime-demos#81

Add proposal, design, and tasks for modernizing the RPM spec to
conform to Fedora Go Packaging Guidelines. Key changes planned:

- Adopt go-vendor-tools for vendored license verification
- Switch to %gobuild macro for hardened builds and debuginfo
- Add main package for shared license files
- Aggregate vendored dependency licenses in License field
- Add Fedora 43 Go 1.25 compatibility workaround
- Bump complyctl dependency to >= 1.0.0

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
- Adopt go-vendor-tools for vendored license verification
- Replace raw go build with %gobuild macro for hardened builds
- Switch to forge macros and %autorelease
- Add aggregated vendored license expression
- Introduce main package for shared license files
- Bump complyctl dependency to >= 1.0.0
- Add Fedora 43 Go 1.25 compatibility workaround
- Create go-vendor-tools.toml with yaml.v3 license override
- Update CHANGELOG.md and AGENTS.md project structure
- Incorporate spec review feedback into OpenSpec artifacts

Assisted-by: OpenCode (claude-opus-4-6)
Signed-off-by: Marcus Burghardt <maburgha@redhat.com>
@marcusburghardt
marcusburghardt force-pushed the opsx/rpm-spec-modernization branch from 66714be to 96d33df Compare August 27, 2026 11:40
@marcusburghardt
marcusburghardt marked this pull request as ready for review August 27, 2026 12:23
@marcusburghardt
marcusburghardt requested a review from a team as a code owner August 27, 2026 12:23
@marcusburghardt
marcusburghardt requested review from sedonnel and trevor-vaughan and removed request for sedonnel August 27, 2026 12:23
@trevor-vaughan trevor-vaughan self-assigned this Aug 27, 2026

@hbraswelrh hbraswelrh left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Approving for now and will look further into license compatibility with testing.

@marcusburghardt
marcusburghardt merged commit 751870b into complytime:main Aug 27, 2026
15 checks passed
@marcusburghardt
marcusburghardt deleted the opsx/rpm-spec-modernization branch August 27, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Review and modernize RPM spec for Fedora Go packaging guidelines

4 participants