Skip to content

Qm 1.1.z - #989

Closed
dougsland wants to merge 2 commits into
containers:qm-1.1.zfrom
dougsland:qm-1.1.z
Closed

dougsland wants to merge 2 commits into
containers:qm-1.1.zfrom
dougsland:qm-1.1.z

Conversation

@dougsland

@dougsland dougsland commented Sep 17, 2026 •

Copy link
Copy Markdown
Member

Summary by Sourcery

Prepare the 1.1.z release and rename the controller CLI RPM subpackage to qmctl with backward-compatible package metadata.

Enhancements:

  • Align the qmctl RPM subpackage naming with standard package conventions while preserving compatibility with the former qm-ctl package name.

Build:

  • Update the package version and SELinux policy version metadata for the 1.1.z release.

The tool is named qmctl, so update the spec file to match the tool's name.

Signed-off-by: Douglas Landgraf <dlandgra@redhat.com>
(cherry picked from commit 600c6de)
Signed-off-by: Douglas Landgraf <dlandgra@redhat.com>
@sourcery-ai

sourcery-ai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

This release updates version and SELinux metadata and restructures the RPM controller subpackage as qmctl, using Provides/Obsoletes entries to support upgrades from the former qm-ctl package while retaining the same controller payload.

File-Level Changes

Change Details Files
Renames the controller subpackage to the standalone qmctl package while preserving compatibility with existing qm-ctl installations.
  • Changes RPM package metadata and description to use the explicit qmctl package name.
  • Adds a versioned compatibility provide for qm-ctl.
  • Obsoletes older qm-ctl packages during upgrade.
  • Updates the file manifest to install controller contents into qmctl.
rpm/qm.spec
Bumps the project version and updates the SELinux policy version metadata.
  • Updates the release version.
  • Adjusts the QM SELinux type-enforcement metadata for the new release.
VERSION
qm.te

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="rpm/qm.spec" line_range="100-101" />
<code_context>
 Summary:	QM service controller command line tool
 Requires:	%{name} = %{version}-%{release}
 Requires:	python3 >= 3.9
+Provides:	%{name}-ctl = %{version}-%{release}
+Obsoletes:	%{name}-ctl < %{version}-%{release}

-%description ctl
</code_context>
<issue_to_address>
**issue (broader_impact):** In copr builds, the compatibility `Provides` and `Obsoletes` omit the package epoch even though the spec assigns epoch 101 there. RPM therefore treats these relations as epoch 0, so the new `qmctl` package does not obsolete the existing epoch-101 `qm-ctl` package; upgrading leaves both packages installed and the transaction fails because they own the same files.

**Triggers:** When upgrading a copr installation containing the previous `qm-ctl` package.

**Suggested fix:** Include the effective epoch in both compatibility relations, using the packaging project's supported conditional-epoch syntax.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 1 finding to address first, and if the package rename or Provides/Obsoletes metadata is wrong, upgrades or dependency resolution could leave installations with the wrong package identity or make qmctl unavailable until the package is repaired. Reverting the change does not automatically restore already-installed RPM metadata, but the affected package state is bounded and repairable by reinstalling or rerunning the upgrade.

Blocking findings: rpm/qm.spec:101


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread rpm/qm.spec
Comment on lines +100 to +101
Provides: %{name}-ctl = %{version}-%{release}
Obsoletes: %{name}-ctl < %{version}-%{release}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

issue (broader_impact): In copr builds, the compatibility Provides and Obsoletes omit the package epoch even though the spec assigns epoch 101 there. RPM therefore treats these relations as epoch 0, so the new qmctl package does not obsolete the existing epoch-101 qm-ctl package; upgrading leaves both packages installed and the transaction fails because they own the same files.

Triggers: When upgrading a copr installation containing the previous qm-ctl package.

Suggested fix: Include the effective epoch in both compatibility relations, using the packaging project's supported conditional-epoch syntax.

@dougsland dougsland closed this Sep 17, 2026
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.

1 participant