Skip to content

fix: reuse packaged wheels for notice metadata - #250

Merged
phantom-jacob merged 1 commit into
mainfrom
sodle/notice-include-system-packages
Jul 20, 2026
Merged

phantom-jacob merged 1 commit into
mainfrom
sodle/notice-include-system-packages

Conversation

@sodle-splunk

@sodle-splunk sodle-splunk commented Jul 18, 2026 •

Copy link
Copy Markdown
Collaborator

Why

The NOTICE hook's pip fallback rebuilt connector requirements from package indexes instead of preferring the compatible wheels already packaged by the connector. Kafka and Microsoft SCCM therefore attempted to rebuild legacy Kerberos dependencies under Python 3.13 even though both connectors already ship compatible wheels.

MISP was removed from this change after tracing its packaged setuptools dependency to an obsolete PyMISP/jsonschema chain; that dependency is being corrected in the connector instead.

Why this belongs in the NOTICE hook

Kafka and Microsoft SCCM require native Kerberos modules at runtime, rather than carrying obsolete build-only dependencies:

  • Kafka uses gssapi. The current upstream release still publishes no Linux wheel and requires system GSSAPI/Kerberos headers when built from source.
  • Microsoft SCCM uses pykerberos. Its latest upstream release is source-only.

Both connectors already package compatible Linux wheels for their supported Python runtimes. Adding --find-links directives to each connector's requirements.txt was tested successfully in clean linux/amd64 Python 3.9 and 3.13 containers, so a connector-local workaround is possible. It would, however, duplicate interpreter-specific packaging knowledge in every connector that ships native wheels.

The NOTICE fallback owns the temporary dependency installation and already receives the connector path. Having it prefer the connector's canonical wheel directories keeps NOTICE metadata aligned with the artifacts actually shipped and fixes the behavior once for native-wheel connectors without changing their runtime dependency declarations.

Tracking

  • PAPP-38222 — Kafka
  • PAPP-38246 — Microsoft SCCM
  • Parent epic: ESPM-5228

Changes

  • pass connector wheel directories to pip with --find-links before installing NOTICE dependencies
  • cover the command construction with a focused test

Verification

  • focused NOTICE tests: 18 passed
  • full dev-cicd-tools pre-commit suite: passed

Written by Codex.

Fresh connector confirmation

Codex reran the hosted pre-commit jobs after the shared runner repair. Kafka, Microsoft SCCM, and Microsoft Windows Remote Management all still fail in the same NOTICE fallback while installing their shipped native Kerberos requirements; their compile checks pass. This also blocks PAPP-38250 / splunk-soar-connectors/microsoftwindowsremotemanagement#63.

Written by Codex.

Prefer connector-bundled wheels during pip fallback so legacy native dependencies are not rebuilt from source in the notice hook.

References PAPP-38222 and PAPP-38246. Written by Codex.
@sodle-splunk
sodle-splunk force-pushed the sodle/notice-include-system-packages branch from 9ed7374 to 9a62177 Compare July 20, 2026 19:48
@sodle-splunk sodle-splunk changed the title fix: include system packages in notices fix: reuse packaged wheels for notice metadata Jul 20, 2026
@phantom-jacob
phantom-jacob merged commit cc620c6 into main Jul 20, 2026
4 checks passed
@phantom-jacob
phantom-jacob deleted the sodle/notice-include-system-packages branch July 20, 2026 23:27
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