[release/v7.4] Remove usage of fpm for DEB package generation#26382
Merged
TravisEz13 merged 1 commit intoPowerShell:release/v7.4from Nov 5, 2025
Merged
[release/v7.4] Remove usage of fpm for DEB package generation#26382TravisEz13 merged 1 commit intoPowerShell:release/v7.4from
TravisEz13 merged 1 commit intoPowerShell:release/v7.4from
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This pull request removes the dependency on fpm (Effing Package Manager) for creating DEB packages and instead implements native DEB package creation using dpkg-deb. The change aligns DEB packaging with the existing native approach used for RPM packages (via rpmbuild) and macOS packages (via pkgbuild/productbuild).
Key Changes:
- Implemented
New-NativeDebfunction to build DEB packages usingdpkg-debdirectly - Removed
fpmand its Ruby dependencies from bootstrap process - Removed the now-obsolete
Get-FpmArgumentsandInstall-GlobalGemfunctions - Added test coverage for DEB package naming validation
- Updated dependency checking to ensure
dpkg-debis available on relevant platforms
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| tools/packaging/packaging.psm1 | Added New-NativeDeb function for native DEB creation; removed Get-FpmArguments function; updated New-UnixPackage to use native DEB builder; updated Test-Dependencies to check for dpkg-deb instead of fpm |
| test/packaging/linux/package-validation.tests.ps1 | Added DEB package naming validation tests; made test expectations consistent across RPM, DEB, and tar.gz tests |
| build.psm1 | Removed Install-GlobalGem function; removed fpm-related dependencies from bootstrap; added dpkg-deb installation logic for Debian-based and Mariner systems; expanded Scenario parameter validation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
adityapatwardhan
approved these changes
Nov 5, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #26281 to release/v7.4
Triggered by @TravisEz13 on behalf of @copilot
Original CL Label: CL-BuildPackaging
/cc @PowerShell/powershell-maintainers
Impact
Tooling Impact
This change removes the dependency on fpm (Ruby gem) for DEB package generation and replaces it with the native dpkg-deb tool. This simplifies the build tooling requirements and reduces external dependencies.
Regression
This is not a regression but an improvement to the packaging process. It removes the fpm dependency for DEB package generation and uses native Linux tooling (dpkg-deb) instead.
Testing
The fix was verified through packaging tests that validate DEB package names and structure. The change was tested in the CI pipeline to ensure DEB packages are built correctly using dpkg-deb instead of fpm. Previous tests relied on fpm being installed, but now use dpkg-deb which is pre-installed on Debian-based systems and Mariner.
Risk
High risk because this changes the core packaging tooling for DEB packages. However, dpkg-deb is the native Debian packaging tool and is more reliable than fpm. The change has been tested in the main branch and reduces complexity by removing Ruby gem dependencies.