apache / netbeans

Apache NetBeans
https://netbeans.apache.org/
Apache License 2.0
2.66k stars 853 forks source link

Update libjunixsocket to 2.5.x - dylib fails notarization #4460

Closed neilcsmith-net closed 2 years ago

neilcsmith-net commented 2 years ago

The x86_64 version of the libjunixsocket 2.4.0 native library is compiled against macOS SDK 10.8. A minimum of SDK 10.9 is required for notarization. Without notarization, macOS installers cannot be produced. AFAIK this is fixed in version 2.5.0, compiled against SDK 10.14, although there is now 2.5.1.

https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues

cc @matthiasblaesing - any concerns elsewhere if updated?

matthiasblaesing commented 2 years ago

I'll prepare an update shortly.

neilcsmith-net commented 2 years ago

@matthiasblaesing thanks. If you can handle update that's great, or I can have a look tomorrow. Mainly wanted to check you didn't have concerns.

Unfortunately looks like this regressed in 2.4.0 - had been fixed once in 2.3.1 https://github.com/kohlschutter/junixsocket/pull/76

matthiasblaesing commented 2 years ago

So I prepared an update. While the version number indicated, that it is an API compatible change, it is in fact not and the docker.api module was broken. I tested the updated library on linux and could connect with my SSH agent and I checked the disassembled code of JSch and there the non-deprecated version of the socket address generation was used. This should be ok.

matthiasblaesing commented 2 years ago

If anyone tries to rebuild the sig file, you get flooded with exceptions as sigtest failes to parse the class files. While looking into this, I noticed, that to my analysis sigtest just does not follow the JVMS and reads the wrong parts of the class file when RuntimeInvisibleTypeAnnotations are read. sigtest needs to be fixed or replaced. It also seems, that sigtest fails to write proper sigfiles when ran on JDK 11.