Skip to content

Refactor Linux packaging to support host-device split architecture#5099

Draft
raramakr wants to merge 1 commit intomainfrom
users/raramakr/host-device
Draft

Refactor Linux packaging to support host-device split architecture#5099
raramakr wants to merge 1 commit intomainfrom
users/raramakr/host-device

Conversation

@raramakr
Copy link
Copy Markdown
Contributor

@raramakr raramakr commented May 7, 2026

Restructured packaging code to properly support host-device split packaging
for multi-arch (kpack) builds. Extracted DEB and RPM logic into separate
modules for better maintainability.

Key improvements:

  • Implemented host-device package variant builder for gfxarch packages
    • Host packages contain generic/architecture-independent artifacts
    • Device packages contain architecture-specific artifacts per target * Meta packages depend on host + all device packages * Non-versioned packages provide user-facing entry point
  • Split DEB creation logic into deb_package.py (440 lines)
  • Split RPM creation logic into rpm_package.py (256 lines)
  • Refactored build_package.py to orchestrate package variants (929 lines reduced)
  • Enhanced packaging_utils.py with improved variant handling
  • Introduced build_package_variants() as unified entry point
  • Each package variant uses isolated build directory to prevent collisions

This refactoring enables proper multi-arch packaging with clean separation
between host and device components, improving package management for
heterogeneous GPU environments.

@raramakr raramakr marked this pull request as draft May 7, 2026 07:59
 Restructured packaging code to properly support host-device split packaging
   for multi-arch (kpack) builds. Extracted DEB and RPM logic into separate
   modules for better maintainability.

   Key improvements:
   - Implemented host-device package variant builder for gfxarch packages
     * Host packages contain generic/architecture-independent artifacts
     * Device packages contain architecture-specific artifacts per target
     * Meta packages depend on host + all device packages
     * Non-versioned packages provide user-facing entry point
   - Split DEB creation logic into deb_package.py (440 lines)
   - Split RPM creation logic into rpm_package.py (256 lines)
   - Refactored build_package.py to orchestrate package variants (929 lines reduced)
   - Enhanced packaging_utils.py with improved variant handling
   - Introduced build_package_variants() as unified entry point
   - Each package variant uses isolated build directory to prevent collisions

   This refactoring enables proper multi-arch packaging with clean separation
   between host and device components, improving package management for
   heterogeneous GPU environments.
@raramakr raramakr force-pushed the users/raramakr/host-device branch from 97f5460 to 8f7f6a1 Compare May 7, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: TODO

Development

Successfully merging this pull request may close these issues.

1 participant