| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
It's been this way for a couple years which means we've been passing...something else?
There was a problem hiding this comment.
This PR is described as a release backport for *nix tarball permissions and signing certificate abstraction, but the submitted diff only corrects the Linux package template’s signed artifact parameter name.
Changes:
Sorry, something went wrong.
| parameters: | ||
| unsignedDrop: 'drop_linux_build_linux_x64' | ||
| signedeDrop: 'drop_linux_sign_linux_x64' | ||
| signedDrop: 'drop_linux_sign_linux_x64' |
We still need to apply the template signing so that Guardian tasks pass and so that script files are signed. After doing what's essentially Windows signing, we sign and harden the binaries for macOS. Then we do the same for the PKG installer, and finally notarize it. The ESRP signing service requires a zip of files for Apple signing at all stages. Now that we can use it via the OneBranch signing task we no longer need the service connection or variable group that was trying to set it up. Notarization requires the BundleId from Get-MacOSPackageIdentifierInfo. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… group The `CP-…` key codes used for ESRP signing are now set from ADO via the `certificate_logical_to_actual` variable group. The templates reference the following variables instead of literal codes: - `$(authenticode_cert_id)` - `$(authenticode_test_cert_id)` - `$(nuget_cert_id)` - `$(apple_cert_id)` - `$(pgp_linux_cert_id)` - `$(pgp_release_cert_id)` `nupkg.yml`, `mac-package-build.yml`, and `linux-package-build.yml` pick up the new group import. `linux-package-build.yml` also now selects the PGP signing profile based on whether `jobName` starts with `mariner`, so `PowerShell-Packages-Stages.yml` no longer threads a `signingProfile` parameter in for the two Mariner jobs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The tarball staging path used `Copy-Item`, which on *nix doesn't preserve the source file mode, so `pwsh` ended up 644 in the `.tar.gz`. The Debian, RPM, and macOS PKG paths explicitly `chmod` everything to 644 and then bump `pwsh` back to 755, which silently demoted `createdump` (the .NET helper that produces crash minidumps) along with it. Now we `chmod 755` both executables in all package staging paths, guarded by `Test-Path` since fxdependent builds don't bundle `createdump`. Also added regression tests which check the permissions of `pwsh` inside the Linux and macOS tarballs before we upload them. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Andy's two PRs below were "rebase merged", which is unexpected and caused all commits from those PRs to get into the master branch without squashing. The backport logic assumes squashing merge always, so it only picks up the last commit.
To fix the backporting, I manually cherry-picked all missing commits into this PR, even though the commit ab700d1 actually belongs to #27347. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Backport of #27385 to release/v7.6.2
Triggered by Dongbo Wang (@daxian-dbw) on behalf of Andy Jordan (@andyleejordan)
Original CL Label: CL-BuildPackaging
/cc @PowerShell/powershell-maintainers
Impact
REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.
Tooling Impact
Abstracts signing certificate codes into the certificate_logical_to_actual variable group across mac, linux, nupkg, and windows pipeline templates. Fixes tarball packaging to restore executable permissions on pwsh and createdump before archiving.
Customer Impact
Fixes a two-year-old bug (issue #23968) where the pwsh binary inside Linux/macOS tarballs was not executable. Users downloading the tarball and running ./pwsh would get a permission error.
Regression
REQUIRED: Check exactly one box.
This is not a regression.
Testing
Regression test added that inspects the tarball contents before upload and throws if pwsh is not executable (-..x pattern). Covers the fix for issue #23968. Signing cert abstraction validated via the original PR pipeline run.
Risk
REQUIRED: Check exactly one box.
Adds chmod 755 calls before tarball packaging and a regression test verifying executable bit. Signing cert variables are abstracted via a variable group. No behavioral change to existing packages that already set permissions correctly.