Skip to content

Conversation

@nullifysecurity
Copy link
Contributor

@nullifysecurity nullifysecurity commented Dec 13, 2025

This pull request fixes the missing RPM release specification issue observed in #4577.

It looks like when the RPM client package is created using the rpm_create plugin, the release is not extracted from the template or specification definition. Instead, the release is determined by the release argument to the plugin. This happens in the expandSpec function in package.go which directly takes in the arg.Release argument.

To fix this, I have added a default Release ("A") to the RPM specification and also modified the Server.Utils.CreateLinuxPackages artifact to include a new parameter allowing users to specify a custom release, as well as passing the parameter or default from the specification to the rpm_create plugin.

I couldn't locate any tests for the Server.Utils.CreateLinuxPackages artifact, however please let me know if I've missed them and I'll update/add the tests for this change.

@scudette scudette merged commit 16bdaf2 into Velocidex:master Dec 13, 2025
5 checks passed
scudette pushed a commit that referenced this pull request Dec 23, 2025
This pull request fixes the missing RPM release specification issue
observed in #4577.

It looks like when the RPM client package is created using the
`rpm_create` plugin, the release is not extracted from the template or
specification definition. Instead, the release is determined by the
`release` argument to the plugin. This happens in the
[expandSpec](https://github.com/Velocidex/velociraptor/blob/29442ef0525c87d1988343a680e4e3d5222a336e/vql/tools/packaging/package.go#L266)
function in `package.go` which directly takes in the `arg.Release`
argument.

To fix this, I have added a default `Release` ("A") to the RPM
specification and also modified the `Server.Utils.CreateLinuxPackages`
artifact to include a new parameter allowing users to specify a custom
release, as well as passing the parameter or default from the
specification to the `rpm_create` plugin.

I couldn't locate any tests for the `Server.Utils.CreateLinuxPackages`
artifact, however please let me know if I've missed them and I'll
update/add the tests for this change.
scudette pushed a commit that referenced this pull request Dec 23, 2025
This pull request fixes the missing RPM release specification issue
observed in #4577.

It looks like when the RPM client package is created using the
`rpm_create` plugin, the release is not extracted from the template or
specification definition. Instead, the release is determined by the
`release` argument to the plugin. This happens in the
[expandSpec](https://github.com/Velocidex/velociraptor/blob/29442ef0525c87d1988343a680e4e3d5222a336e/vql/tools/packaging/package.go#L266)
function in `package.go` which directly takes in the `arg.Release`
argument.

To fix this, I have added a default `Release` ("A") to the RPM
specification and also modified the `Server.Utils.CreateLinuxPackages`
artifact to include a new parameter allowing users to specify a custom
release, as well as passing the parameter or default from the
specification to the `rpm_create` plugin.

I couldn't locate any tests for the `Server.Utils.CreateLinuxPackages`
artifact, however please let me know if I've missed them and I'll
update/add the tests for this change.
@nullifysecurity nullifysecurity deleted the fix/linux-release-spec branch January 4, 2026 01:49
scudette pushed a commit that referenced this pull request Jan 8, 2026
I’ve just seen #4577 and #4587 — this one is probably on me. 
In #3270 I incorrectly assumed that .Default("A") would take effect, but
it looks like it didn’t because the field may have been an empty string
(e.g. same for server_rpm_command_output -
https://github.com/Velocidex/velociraptor/blob/master/bin/rpm.go#L140-L143).
Sorry for the oversight on my part.
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.

2 participants