Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable signing and notarization of .pkg files using SignTool #14435

Open
Tracked by #3708
mmitche opened this issue Jan 30, 2024 · 6 comments
Open
Tracked by #3708

Enable signing and notarization of .pkg files using SignTool #14435

mmitche opened this issue Jan 30, 2024 · 6 comments
Assignees

Comments

@mmitche
Copy link
Member

mmitche commented Jan 30, 2024

Enable SignTool to process and and submit MacOS .pkgs for signing and notarization. Because notarization can only happen on a Mac machine, this requires #14431 to be complete.

One place to start with this is looking at what we do in the staging pipelines.

Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@mmitche mmitche transferred this issue from dotnet/source-build Jan 30, 2024
@mmitche mmitche moved this to Ready in .NET Unified Build Jan 30, 2024
@ellahathaway ellahathaway moved this from Ready to In Progress in .NET Unified Build Oct 29, 2024
@ellahathaway ellahathaway self-assigned this Oct 29, 2024
@ellahathaway
Copy link
Member

Assigning myself for now since I've been working on this in parallel with #14438. The piece that I'm missing is the entitlements. I'll discuss this more when I open the draft PR since then I'll be able to point to the section of code that I think we may need to add entitlements with.

@ellahathaway
Copy link
Member

ellahathaway commented Oct 29, 2024

This is the current commit with the changes for signing. This commit sits on top of #15205 and #15206.

Some things that were unclear with these task that will need to be addressed before the changes are ready for PR:

  • What certificate should be used? I defaulted to Microsoft400 but I am unsure if this is correct.
  • Do we still need to group OSX files by certificate when signing?
    • If yes, do we still use Round{round}-OSX-Cert{certificate}.proj?
    • If no, will Round{round}.proj be the project filename? How does this work with signing non OSX files that use the same project filename?
  • How do we add entitlements to OSX files?

@ellahathaway
Copy link
Member

T-Shirt Size: S/M

Requires reworking of the current infra for signing osx extensions given this documentation: https://dev.azure.com/devdiv/DevDiv/_wiki/wikis/DevDiv.wiki/19841/Additional-Requirements-for-Signing-or-Notarizing-Mac-Files?anchor=visual-studio-project-files

@ellahathaway ellahathaway assigned mmitche and unassigned ellahathaway Nov 22, 2024
@mmitche
Copy link
Member Author

mmitche commented Nov 27, 2024

There are a couple interesting points here:

  • When using MacDeveloperHarden, we need to include in the signing metadata. I do not believe this is the case for other file types, but not positive.
  • The executable names that will need to signed and notarized (e.g. dotnet or createdump) only need to be signed on Mac, not on Linux. Even if they were going to get signed on Linux, they would not get the same signature. This means that repos will need to tweak their Signing.props to select the correct sig per platform.
  • Notarization is

Our existing signing infra has us applying entitlements to dotnet, createdump, etc. I need to determine whether these entitlements have already been applied by other repos. Is it necessary to re-apply them?

@mmitche
Copy link
Member Author

mmitche commented Nov 27, 2024

It does look like entitlements are already added and do not need to be re-added. Confirming

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

2 participants