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

Add Library/QuickLook to the list of code resource bundles #161

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dimula73
Copy link

@dimula73 dimula73 commented Oct 8, 2024

If an application has a quicklook plugin in Library/QuickLook location, then rcodesign signs the plugin twice, first as a bundle, and then as a standalone binary again. It makes the signature invalid (missing resources) and fails the following notarization process.

I used the example of Library/Spotlight plugin to make an exception for QuickLook.

Otherwise rcodesign signs QuickLook plugins twice!
@dimula73
Copy link
Author

dimula73 commented Oct 8, 2024

I'm not really sure that is a correct fix, because this rule is missing from a package signed by normal codesign (from its CodeResources file). But at least it prevents rcodesign signing the package twice.

Here is an example package that fails to be signed by rcodesign because of this issue:
https://files.kde.org/krita/.release/5.2.6/unsigned/krita-5.2.6.dmg

@indygreg
Copy link
Owner

indygreg commented Nov 2, 2024

Interesting. Thanks for submitting this change.

So you are saying that codesign doesn't include this directory in its rules? If true, then that seemingly points to a bug in our nested bundle handling. We want the XML rules to match codesign exactly.

Nested bundle signing has historical been a bit fragile in this project. See the release notes for various examples and links. I'm willing to bet this is yet another bug around how nested bundles are identified and signed.

I'd like to understand this issue more before acting on this PR.

@dimula73
Copy link
Author

dimula73 commented Nov 4, 2024

So you are saying that codesign doesn't include this directory in its rules?

It is a bit more complicated than it sounds. codesign does not include this directory in the rule, but we don't use nested code signing with codesign. We are currently transitioning from manual non-nested codesign with a script to a CI-sabes system that uses rcodesign, so we had to switch to nested signing...

I'm willing to bet this is yet another bug around how nested bundles are identified and signed.

It is possible that codesign has an exception for "Quicklook" to detect it as a bundle, but doesn't write that into XML?

(I'm not experienced in the MacOS-based development, so I don't fully understand all these issues with nested signing)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants