Skip to content

Add deb-arm64 package type for Debian arm64#27386

Closed
andyleejordan wants to merge 1 commit into
andyleejordan/nix-permissionsfrom
andyleejordan/debian-12-arm64
Closed

Add deb-arm64 package type for Debian arm64#27386
andyleejordan wants to merge 1 commit into
andyleejordan/nix-permissionsfrom
andyleejordan/debian-12-arm64

Conversation

@andyleejordan
Copy link
Copy Markdown
Member

PR Summary

Resolves the in-repo half of #24076 (DSR for Debian 12 arm64). We already build a linux-arm64 self-contained binary and a tar-arm64 tarball, but the only .deb we ship is amd64. This adds a deb-arm64 packaging path that consumes the existing arm64 signed binary drop and emits a deb whose control field reports Architecture: arm64 and whose filename ends in _arm64.deb.

PR Context

The packaging logic itself was almost free — New-DebPackage already takes HostArchitecture and writes it verbatim into the deb control file and output filename, and Debian uses arm64 natively (no aarch64 translation like RPM needs). So the new switch arm in Start-PSPackage is a clone of 'deb' with HostArchitecture = "arm64".

Pipeline-side:

  • linux-package-build.yml learns the deb-arm64 packageType and maps it to the Signed-linux-arm64 drop folder
  • PowerShell-Packages-Stages.yml adds a deb_arm64 job that consumes the existing drop_linux_build_linux_arm64 / drop_linux_sign_linux_arm64 artifacts (the same ones feeding tar-arm64 today)
  • release-validate-packagenames.yml widens the deb regex from _amd64\.deb to _(amd64|arm64)\.deb

I deliberately did not set hostArchitecture: arm64 on the new job's pool. Per OneBranch's ARM64 Build Hosts guidance, that flag is for native compilation of arm64 code; we're just running dpkg-deb over already-built arm64 binaries, which is what tar-arm64 does today on the default amd64 linux pool. The existing signing step's files_to_sign: '**/*.rpm;**/*.deb' glob already picks up the new artifact with no change.

The remaining DSR checklist items (Docker image in PowerShell/PowerShell-Docker, PMC publish, lifecycle and install-doc updates in MicrosoftDocs/PowerShell-Docs) live outside this repo and are tracked on #24076.

Drafted by Copilot (Claude Opus 4.7 (High reasoning)).

PR Checklist

Resolves the in-repo half of #24076 (DSR for Debian 12 arm64). We already
build a `linux-arm64` self-contained binary and a `tar-arm64` tarball, but
the only `.deb` we ship is `amd64`. This adds a `deb-arm64` packaging
path that consumes the existing arm64 signed binary drop and emits a deb
whose control field reports `Architecture: arm64` and whose filename
ends in `_arm64.deb`.

The packaging logic itself was almost free — `New-DebPackage` already
takes `HostArchitecture` and writes it verbatim into the deb control
file and output filename, and Debian uses `arm64` natively (no `aarch64`
translation like RPM needs). So the new switch arm in `Start-PSPackage`
is a clone of `'deb'` with `HostArchitecture = "arm64"`.

Pipeline-side:

- `linux-package-build.yml` learns the `deb-arm64` packageType and maps
  it to the `Signed-linux-arm64` drop folder
- `PowerShell-Packages-Stages.yml` adds a `deb_arm64` job that consumes
  the existing `drop_linux_build_linux_arm64` /
  `drop_linux_sign_linux_arm64` artifacts (the same ones feeding
  `tar-arm64` today)
- `release-validate-packagenames.yml` widens the deb regex from
  `_amd64\.deb` to `_(amd64|arm64)\.deb`

I deliberately did not set `hostArchitecture: arm64` on the new job's
pool. Per OneBranch's ARM64 Build Hosts guidance, that flag is for
native compilation of arm64 code; we're just running `dpkg-deb` over
already-built arm64 binaries, which is what `tar-arm64` does today on
the default amd64 linux pool. The existing signing step's
`files_to_sign: '**/*.rpm;**/*.deb'` glob already picks up the new
artifact with no change.

The remaining DSR checklist items (Docker image in
PowerShell/PowerShell-Docker, PMC publish, lifecycle and install-doc
updates in MicrosoftDocs/PowerShell-Docs) live outside this repo and
are tracked on #24076.

Drafted by Copilot (Claude Opus 4.7 (High reasoning)).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@andyleejordan andyleejordan added OS-Linux CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log labels May 1, 2026
@andyleejordan
Copy link
Copy Markdown
Member Author

This needs to be run through ADO but having issues using the rebuild/* branches.

@andyleejordan
Copy link
Copy Markdown
Member Author

Going to close as Claude pretty much just duplicated #26925 and I'll let @anamnavi finish getting this through.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log OS-Linux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant