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

Code Signing change to the macOS Application. #3593

Closed
paul-cossey opened this issue Jul 9, 2024 · 16 comments
Closed

Code Signing change to the macOS Application. #3593

paul-cossey opened this issue Jul 9, 2024 · 16 comments
Labels

Comments

@paul-cossey
Copy link

Before you start
Please open an issue only if you suspect there is a bug or any problem with GNS3. Go to https://gns3.com/community for any other questions or for requesting help with GNS3.

You may also post this issue directly on the GNS3 server repository if you know the bug comes from the server: https://github.com/GNS3/gns3-server/issues/new

Describe the bug
The identifier in the code signing on the macOS App has changed on the latest release.

Old: identifier "net.gns3"
New: identifier "gns3-55554944975e7584157e3e77a8ed78863ff9f8c5"

Is this expected? Or a mistake?

If this is expected, the new identifier looks like a UUID, will this change with subsiquent releases?

GNS3 version and operating system (please complete the following information):

  • OS: macOS
  • GNS3 version 2.2.48

To Reproduce
Steps to reproduce the behavior:
/usr/bin/codesign -d --deep --verbose=2 -r- /Path/To/GNS3.app and compare the certificates

Screenshots or videos
N/A

Additional context
As part of our security checks we automatically check the code certificate on download for any changes before we can install on client computers.

@paul-cossey paul-cossey added the Bug label Jul 9, 2024
@grossmj
Copy link
Member

grossmj commented Jul 9, 2024

Is this expected? Or a mistake?

No, this is not intentional. In version 2.2.48, we have switched to building the GNS3 app on Apple Silicon with xcode 14.2.0.

This may also be because we use notarytool instead of altool to sign the app. notarytool doesn't take an identifier anymore however it looks like this value wasn't used anyway:

https://developer.apple.com/documentation/technotes/tn3147-migrating-to-the-latest-notarization-tool#Submit-a-file

There’s no replacement for the --primary-bundle-id option. The notary service never interpreted that value; it was effectively a comment.

I am going to check if the identifier can be provided to codesign or why the default behavior has changed.

@grossmj
Copy link
Member

grossmj commented Jul 9, 2024

Providing the identifier as a parameter to codesign worked. Would you like us to release new binary with the net.gns3 identifier?

@paul-cossey
Copy link
Author

paul-cossey commented Jul 9, 2024

Holy smokes that was quick!

Yes please, @grossmj that would be amazing

@grossmj
Copy link
Member

grossmj commented Jul 9, 2024

I am considering changing our identifier to "com.gns3.appname", would this cause any issue on your end?

@paul-cossey
Copy link
Author

No issues for me.

com.gns3.appname would actually be perefered and more in line with current standards than the old net.gns3

@grossmj
Copy link
Member

grossmj commented Jul 9, 2024

I have uploaded a new app with the updated identifier: https://github.com/GNS3/gns3-gui/releases/download/v2.2.48/GNS3-2.2.48.dmg

@admdly
Copy link

admdly commented Jul 9, 2024

Is this expected? Or a mistake?

No, this is not intentional. In version 2.2.48, we have switched to building the GNS3 app on Apple Silicon with xcode 14.2.0.

Somewhat related - are Intel builds no longer provided? The latest version appears to be Apple Silicon only (not Universal), and there is no link to an Intel build anywhere.

@grossmj
Copy link
Member

grossmj commented Jul 9, 2024

Somewhat related - are Intel builds no longer provided? The latest version appears to be Apple Silicon only (not Universal), and there is no link to an Intel build anywhere.

We have built for Apple Silicon only (because the platform we use to make the builds, CircleCI, has deprecated macOS Intel instances).

We can try to create a Universal build if we have enough requests, however this is quite challenging to do...

@admdly
Copy link

admdly commented Jul 9, 2024

Somewhat related - are Intel builds no longer provided? The latest version appears to be Apple Silicon only (not Universal), and there is no link to an Intel build anywhere.

We have built for Apple Silicon only (because the platform we use to make the builds, CircleCI, has deprecated macOS Intel instances).

We can try to create a Universal build if we have enough requests, however this is quite challenging to do...

Thanks for the quick response. I understand the difficulty in creating a Universal build and I wouldn't expect you to do so without appropriate demand.

However, I would highlight that Intel builds are no longer provided as it's not clear beyond the app being unable to be executed after downloading the disk image, particularly when upgrading.

@core-code
Copy link

i wanted to open a bug report about the fact that the new binary won't run on most Macs and that this isn't even mentioned in the release notes but i see this is discussed here already.

paul-cossey added a commit to autopkg/dataJAR-recipes that referenced this issue Jul 10, 2024
- Updated regex so it doesn't grab the dmg.sha256 file.
- Updated code signature: see GNS3/gns3-gui#3593 for details.
paul-cossey added a commit to autopkg/dataJAR-recipes that referenced this issue Jul 10, 2024
Due to CircleCI deprecating x86_64 Mac instances as of v2.2.48 GNS3 is arm64 only.

See: https://gns3.com/community/blog/gns3-2-2-48-released and GNS3/gns3-gui#3593
@paul-cossey
Copy link
Author

Thanks again for the quick turn around, @grossmj much appreciated! I'm happy for this to be closed as resolved.

And thanks for the additional info around CircleCI deprecating Intel builds. That's very helpful to know. I guess more vendors will follow suite and start to only release arm64 versions.

@core-code The release notes do mention arm64 builds only: https://gns3.com/community/blog/gns3-2-2-48-released

Please note that since v2.2.42, only macOS 12 and above is supported and since v2.2.48 only Apple Silicon based machine are supported. Building a universal macOS app is a possibility if enough requests are made.

FWIW we'd prefer a universal build, as we still have to support x86_64 computers, but appreciate the additional effort on your part may not be worth it.

@core-code
Copy link

The release notes do mention arm64 builds only

thats good, also adding the note to the release notes on GitHub would be great

@grossmj
Copy link
Member

grossmj commented Jul 11, 2024

thats good, also adding the note to the release notes on GitHub would be great

I have added a note, thanks 👍

@grossmj grossmj closed this as completed Jul 11, 2024
@grossmj
Copy link
Member

grossmj commented Jul 11, 2024

@core-code @admdly

I have released an Intel version that needs to be tested: https://github.com/GNS3/gns3-gui/releases/download/v2.2.48/GNS3-2.2.48-intel.dmg

Please let me know if it works on your side. Thanks 👍

@admdly
Copy link

admdly commented Jul 12, 2024

@core-code @admdly

I have released an Intel version that needs to be tested: https://github.com/GNS3/gns3-gui/releases/download/v2.2.48/GNS3-2.2.48-intel.dmg

Please let me know if it works on your side. Thanks 👍

Thanks for this - from brief testing it looks to be working as expected for me (iMac, 2019).

@core-code
Copy link

same here

paul-cossey added a commit to autopkg/dataJAR-recipes that referenced this issue Jul 12, 2024
- Adds support for downloading the intel version. See GNS3/gns3-gui#3593 for further info.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants