SynoCommunity / spksrc

Cross compilation framework to create native packages for the Synology's NAS
https://synocommunity.com
Other
3.01k stars 1.23k forks source link

Mono 5.18 SSL store problems on aarch64 platforms #3666

Closed bjorn1981 closed 3 years ago

bjorn1981 commented 5 years ago

For new Package Requests, see the guidelines

Setup

Package Name: Mono Package Version: 5.18

NAS Model: DS118 NAS Architecture: ARM rtd1296 DSM version: 6.1

Expected behavior

https connection excepted

Actual behavior

any https connection is refused since updating Mono 5.8 -> 5.18, for example torrentapi or telegram. Happens in sonarr and radarr. Mono, Sonarr and Radarr are all latest version by SynoCommunity.

log error: System.Net.WebException: Error: SecureChannelFailure (Authentication failed, see inner exception.) ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception. ---> Mono.Btls.MonoBtlsException: Ssl error:0f000078:elliptic curve routines:OPENSSL_internal:POINT_IS_NOT_ON_CURVE

Running /var/packages/mono/target/bin/cert-sync /etc/ssl/certs/ca-certificates.crt did not help. Also noticed there is no /usr/share/.mono/ folder

Connecting torrentapi over http instead of https works.

BenjV commented 5 years ago

In that case you did not create a tar file with 7zip.

If you add the files to a filename with extension .spk then you have to select tar as archive format in 7zip.

CraigInBrisbane commented 5 years ago

I opened the file with 7zip. Extracted the INfO file my desktop. Edited the INFO file with Notepad++. Copied the INFO back into the spk file (open in 7zip).

So I never created a spk file. I simply edited a file within the existing one.

carnigg commented 5 years ago

I unpacked it all, edited the INFO and repacked as a tar, still no go

BenjV commented 5 years ago

If you save it then it will be save as a zip (the default) Better to open 7zip. Select all the files including the changed INFO. Click ADD in 7zip Choose a new filename with extension .spk (for example: mono test.spk) Select on that page tar as the archive format. Click OK Do a manual install of "mono test.spk" on your Nas

CraigInBrisbane commented 5 years ago

Just did that exactly as you said. Same issue.

BenjV commented 5 years ago

What NAS model do you have?

CraigInBrisbane commented 5 years ago

I have a Synology DS418j

The Synology DS418j arrives with an ARM CPU, but this time a much more proficient Realtek RTD1293. This chip is a 64-bit architecture, dual core CPU that has a higher frequency of 1.4GHz and with it you have a host of new application options open to you compared with the DS416J.

carnigg commented 5 years ago

DS418 here

BenjV commented 5 years ago

Ok I made a package for you guys Downloadlink is here. https://drive.google.com/file/d/1JFOV11HWikcfJjJyZ9fs4SB3FElEK2TO/view?usp=sharing

I installed it on my DS116 and it works fine. So if it does not install on a DS418 the packages are not comapitble

CraigInBrisbane commented 5 years ago

Ok. Downloading.

CraigInBrisbane commented 5 years ago

Darn. Same issue with your file. Something is irritating the file. It still reports corrupt.

carnigg commented 5 years ago

I have something different, mono is up and running but radar and sonar won’t start. Just restarting the NAS

carnigg commented 5 years ago

Ok Mono is running but still can’t start radarr or sonarr, might be something my end though

carnigg commented 5 years ago

Nope, no go. Mono says it’s running, but sonar and radar won’t start. Don’t think it’s a permission issue

WodKa78 commented 5 years ago

Thanks for your help BenjV, unfortunately same issue as carnigg...

BenjV commented 5 years ago

As I said before, you most likely have to do the same thing for Radarr and Sonarr and use the packages build voor the ARMV7.

I don't have time to change those package at this moment, but later on I will post them for you to test with.

BenjV commented 5 years ago

I have made test packages for Sonarr and Radarr that may work in conjunction with the mono test package. Here are the links to download them: Sonarr: https://drive.google.com/file/d/1GXWaAbHydKJ2Pipr3tXs5TkucKgYV2sQ/view?usp=sharing

Radarr https://drive.google.com/file/d/1qtUkuGgSR_15I0AKYvoLszuOuUOwi2z1/view?usp=sharing

WodKa78 commented 5 years ago

Thanks unfortunately same problem still, not starting Radarr and Sonarr...

BenjV commented 5 years ago

Sorry to hear that, but it was always a bit of a longshot.

WodKa78 commented 5 years ago

Thanks in any case for helping.

CraigInBrisbane commented 5 years ago

Yes. Thanks from me too. I guess we need to wait and hope that someone changes Radarr and Sonarr to .Net Core?

m4tt075 commented 5 years ago

Yes, thanks for helping, @BenjV! It was worth a try.

On possible solutions: From the mono discussions, this is an issue with gcc 4.x versions really. Their "workaround" was to upgrade to newer gcc versions. Our problem is that all the Synology toolchains that we use to cross-compile still come with gcc 4.x (see subdirectories of https://sourceforge.net/projects/dsgpl/files/DSM%206.2%20Tool%20Chains/). If they upgrade, that could solve the issue, too.

In any case, I hope the "downgrade" workaround will still keep aarch64 platform users running for a while...

BenjV commented 5 years ago

Maybe you could update the toolchain with a newer gcc version. You can download the binaries for the arch64 cpu here. https://rpmfind.net/linux/rpm2html/search.php?query=gcc-aarch64-linux-gnu

bjorn1981 commented 5 years ago

What worked for me:

  • Download mono Version 5.8.0.108-11 from https://synocommunity.com/package/mono
  • Unpack Package
  • Change Version to higher version than 5.18.0.240-12
  • Repack Package
  • Install Package manually
  • Restart Diskstation

After some restarts and updating Radarr and Sonarr to the newest Version, everything works again without backup and restore.

I also followed this method. In the INFO file I changed the version to 5.18.0.240-13 and deleted the checksum (with notepad++. Packed the files as a tar archive wth 7-zip. No need te reboot the diskstation, Sonarr and Radarr were already updated to the latest.

BenjV commented 5 years ago

So now you are running the latest version of Sonarr and Radar with the old (5.8.0.108-11) mono version (disguised as version 5.18.0..240).

Don't you think that there is a reason why the Sonarr/Radarr developers want you to use the newer version?

bjorn1981 commented 5 years ago

Probably. I'll just see where it goes. Today everything was fully operational. No errors in log files. If anything breaks I'll know I'm to blame.

Op do 11 apr. 2019 14:10 schreef BenjV notifications@github.com:

So now you are running the latest version of Sonarr and Radar with the old (5.8.0.108-11) mono version (disguised as version 5.18.0..240).

Don't you think that there is a reason why the Sonarr/Radarr developers want you to use the newer version?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/SynoCommunity/spksrc/issues/3666#issuecomment-482088317, or mute the thread https://github.com/notifications/unsubscribe-auth/AIDlWll7X9OBDtTGLjwDGccegkR_6dWnks5vfyYmgaJpZM4cG5YZ .

Komagain commented 5 years ago

If you save it then it will be save as a zip (the default) Better to open 7zip. Select all the files including the changed INFO. Click ADD in 7zip Choose a new filename with extension .spk (for example: mono test.spk) Select on that page tar as the archive format. Click OK Do a manual install of "mono test.spk" on your Nas

Just to clarify, the files have to be tar and not the directory (I have faced errors since last week because of that)

CraigInBrisbane commented 5 years ago

Is this the only "work around" at the moment? I might need to give it a go. From what I see, Sonarr/Radarr to .Net Core port is a long long way off. PS: Still getting "Package is corrupt" issue though. :(

BenjV commented 5 years ago

I was searching on the web which mono version is required by Sonarr/Radarr but that information is nowhere to be found. @bjorn1981 and @Komagain could maybe report back if your solution is working without problems. If so then the packages for Sonarr and Radarr could be changed so they accept to be installed when the older mono version is installed.

Komagain commented 5 years ago

@BenjV I confirm it works like a charm, I had to reboot 3 times:

BenjV commented 5 years ago

@m4tt075 and @ymartin59 Is it a good idea to change the packages that use mono so that they also would accept a lower version of mono?

Or did you had a clear reason to demand the latest version of Mono for those packages?

m4tt075 commented 5 years ago

@BenjV Foraarch64 certainly, because "anything" is better than "nothing". For all other users, probably not. Memory leak issues with the old mono version were the actual starting point of all the updates (see #3470). From there, the challenge was to find any combination of mono and *arr packages that would work together. Took loads of iterations to find anything that seemed stable, until I "dared" to push anything into our repo. The aarch64 problem did not show up until after we merged all changes.

To that extent: Is the bumped mono version a "hard" dependency? No, it isn't. Would I advise non-aarch64 users to go back? No, I wouldn't, especially since we've learned that this is a problem with the gcc compiler for mono on aarch64 platforms really. As you've rightly pointed out - and I sincerely thank you for the hint not to waste more of my time - we cannot fix problems, upstream gave up on already...

I'll see whether we can republish the *arr packages with reduced mono dependency requirements for aarch64 (and only that) in the next couple of days, but am afraid I cannot do more. More than happy to learn about better ideas, if there are any...

CraigInBrisbane commented 5 years ago

@m4tt075 - Do you know if this will be fixed ever? Reason I ask - my Nas box did a system update, which included a Mono update. So now Sonarr and Radarr no longer work.

m4tt075 commented 5 years ago

@CraigInBrisbane I don't know but wouldn't count on it. I'd either downgrade again or patch the Sonarr and Radarr packages as others have described earlier in this threat.

erikmollink commented 4 years ago

I'll see whether we can republish the *arr packages with reduced mono dependency requirements for aarch64 (and only that) in the next couple of days, but am afraid I cannot do more. More than happy to learn about better ideas, if there are any...

Just bought a used DS212+ with '88f6282' arch. Same issues. I will try to see if downgrading helps. Was the solution (reduced mono dependency) already applied and republished?

jbaun commented 4 years ago

hi. i also have the DS212+, and Mono stopped working. I want to downgrade Mono and Jackett, but i really don't see any download link under https://synocommunity.com/package/mono what am i doing wrong?

laurebaugnies commented 3 years ago

Hi, so before I jump in and downgrade everything on my NAS, Can someone specify which version are compatible? For Mono, Radarr, Sonarr and maybe Jackett.

hmelville commented 3 years ago

Hi all, I have a DS420j which is aarch64. I cannot find mono 5.8 anywhere and the Syno community only has 5.18 and newer and none of then work. Does anyone know where I can get my hands on 5.8?

Dirkle commented 3 years ago

Hi all, I have a DS420j which is aarch64. I cannot find mono 5.8 anywhere and the Syno community only has 5.18 and newer and none of then work. Does anyone know where I can get my hands on 5.8?

5.8.0 is available in the Syno Community here

Dirkle commented 3 years ago

Reporting this is broken for DS1515+ and the avoton-x64 architecture. Downgrading to mono v5.8.0.108-11 and sonarr v20200409-16 has worked for me.

hmelville commented 3 years ago

Hi all, I have a DS420j which is aarch64. I cannot find mono 5.8 anywhere and the Syno community only has 5.18 and newer and none of then work. Does anyone know where I can get my hands on 5.8?

5.8.0 is available in the Syno Community here

Thanks @Dirkle, I have already looked there and unfortunately I cannot find a download link of 5.8 for my architecture aarch64 (although there are ones for mine in other versions). Are you aware if any of the others are compatible?

hgy59 commented 3 years ago

@hmelville I have built mono 5.8 for aarch64. https://github.com/hgy59/spksrc/releases/tag/Mono_5.8

Please give feedback whether this is running so I can upload it to the SynoCommunity package respository.

hmelville commented 3 years ago

@hmelville I have built mono 5.8 for aarch64. https://github.com/hgy59/spksrc/releases/tag/Mono_5.8

Please give feedback whether this is running so I can upload it to the SynoCommunity package respository.

@hgy59. That has worked perfectly with Sonarr version 20200921-18. Thank you.

hgy59 commented 3 years ago

As I have published version 5.8.0.108-11 for aarch64, I have removed the release in https://github.com/hgy59/spksrc/releases/tag/Mono_5.8

PS The version 5.8 for DS420j (rtd1296) was available already before - but it was missing for armada37xx (DS120j, etc.). Anyway I have deleted 5.8.0.108-11 for rtd1296-6.1 and uploaded aarch64-6.1 (for rtd1296 and armada37xx).

RewAU commented 3 years ago

Looking for some more background here - we have a DS216j (88F6820) and a DS218 (RTD1296), both with Sonarr 3.0.6.1196 & Jackett v0.17.828, however the DS218 (RDT1296) throws POINT_IS_NOT_ON_CURVE errors with any version of Mono greater than 5.8.0.108 whereas the DS216j (88F6820) has no issues with 5.20.1.34.

This is likely a naive question, but I'm keen to understand why compiling the Mono 5.20.1.34 source for the aarch64 architecture doesn't solve this issue ? Is it as simple as the aarch64 compiler being broken ?

Thanks in advance for your replies.

hgy59 commented 3 years ago

The aarch64 failure is caused by the too old gcc of the synology toolchains. As mentioned here it will never be fixed by the mono team (the issue was gone there by updating debian 8 to debian 9) May be we get this solved with the DSM7 toolchains but for DSM <= 6 there is definitly no solution available.

And yes, it is that any available aarch64 compiler seems to be broken.

publicarray commented 3 years ago

I think this issue can be closed. If possible install the .net version of the package or downgrade mono to 5.8 (Sonarr does not provide a .net version yet.)

https://github.com/SynoCommunity/spksrc/wiki/Radarr-Sonarr-Lidarr-Jackett