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

mono: update to v6.12.0.182 #5677

Merged
merged 5 commits into from Mar 30, 2023
Merged

mono: update to v6.12.0.182 #5677

merged 5 commits into from Mar 30, 2023

Conversation

hgy59
Copy link
Contributor

@hgy59 hgy59 commented Mar 26, 2023

Description

  • update mono
  • fix BTLS library for aarch64 built with gcc 4 (Mono 5.18 SSL store problems on aarch64 platforms #3666)
  • remove some features to keep the package as small as possible
    • remove profiling feature
    • remove boehm gc
    • remove ikvm library
  • disable packages for ARMv5 by removing ARMv5 from UNSUPPORTED_ARCHS
    it is still possible to create such a package, but without a TLS library most use cases will not work
  • add a script to update mono ca certificates after installation

Fixes #3666, closes #4054, closes #4669

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • Package update

@hgy59 hgy59 mentioned this pull request Mar 26, 2023
3 tasks
@hgy59 hgy59 requested a review from mreid-tt March 26, 2023 19:55
@hgy59
Copy link
Contributor Author

hgy59 commented Mar 26, 2023

@mreid-tt finally I got all issues with Mono package fixed.

Additional information for the package is available in our wiki https://github.com/SynoCommunity/spksrc/wiki/FAQ-Mono

@mreid-tt
Copy link
Contributor

@hgy59, I started with an upgrade from the current version to this one on DSM 6. Unfortunately I got what seems to be a failed update and Sonarr v3 is also unable to start with this version. Logs below:

/var/log/packages/mono.log - https://pastebin.com/X2QJDNwQ
/var/log/packages/nzbdrone.log - https://pastebin.com/nz7iwc2s
/var/packages/nzbdrone/var/nzbdrone.log - https://pastebin.com/Dh66zMfR

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 26, 2023

@mreid-tt thanks for the feedback. I didn't expect that a package requires the AOT compiler... fixing this.

@mreid-tt
Copy link
Contributor

mreid-tt commented Mar 26, 2023

@mreid-tt thanks for the feedback. I didn't expect that a package requires the AOT compiler... fixing this.

@hgy59, that seems to have done it! Upgrades on DSM 6 and DSM 7 were both successful:

/var/log/packages/mono.log (DSM 6) - https://pastebin.com/3Q4jLXri
/var/log/packages/mono.log (DSM 7) - https://pastebin.com/SuE5VHBQ

EDIT: I don't know why the logs show two different behaviours regarding stored certificates. Is it the DSM version? If so, any idea why the number of certificates are different?

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 26, 2023

EDIT: I don't know why the logs show two different behaviours regarding stored certificates. Is it the DSM version? If so, any idea why the number of certificates are different?

The laziness of synology...

I have two different models with DSM 7.1.1-42962 Update 4
both have a ca-certificates.crt file of 29.12.2021 with 3374 lines

another model with DSM 6.2.4-25556 Update 6 has one of 01.05.2021 with 3823 lines

@mreid-tt
Copy link
Contributor

Thanks for the feedback. All seems okay then. I only tested this on my x64 platform however and don't have the hardware to comment on aarch64 SSL store problems (#3666). Perhaps someone else can help test this?

@hgy59
Copy link
Contributor Author

hgy59 commented Mar 26, 2023

Thanks for the feedback. All seems okay then. I only tested this on my x64 platform however and don't have the hardware to comment on aarch64 SSL store problems (#3666). Perhaps someone else can help test this?

I have a DS218 to test this (and it worked)
But currently is fails again (for all archs I have testsed). Have to investigate into (but will be offline for about a week).

To test I use a simple csharp program webclient.ch:

using System;
using System.Net;
using System.IO;

public class WebClientTest
{
    public static void Main(string[] args)
    {
        if (args == null || args.Length == 0)
        {
            throw new ApplicationException("Specify the URI of the resource to retrieve.");
        }
        using (WebClient client = new WebClient())
        {
            // Add a user agent header in case the
            // requested URI contains a query.
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

            using (Stream data = client.OpenRead(args[0]))
            using (StreamReader reader = new StreamReader(data))
            {
                string s = reader.ReadToEnd();
                Console.WriteLine(s);
            }
        }
    }
}

simply compile this with

mcs webclient.cs

And run with any https site like:

mono webclient.exe https://google.com

But as I mentioned above this currently fails

  • on aarch64 with elliptic curve routines:OPENSSL_internal:POINT_IS_NOT_ON_CURVE
  • on other models with SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED

@hgy59 hgy59 mentioned this pull request Mar 30, 2023
10 tasks
- update mono
- fix BTLS library for aarch64 built with gcc 4 (SynoCommunity#3666)
- remove some features to keep the package as small as possible
  - remove aot, profiling and debugging
  - remove boehm gc
  - remove ikvm library
- disable packages for ARMv5
  by removing ARMv5 from UNSUPPORTED_ARCHS it is still possible to create such a package,
  but without a TLS library most use cases will not work
- add a script to update mono ca certificates after installation
- enforce build of BTLS library for ARMv5 archs
- fixes mono/mono#11422
@hgy59 hgy59 force-pushed the update_mono branch 2 times, most recently from ec98b62 to 69a792f Compare March 30, 2023 17:39
@hgy59
Copy link
Contributor Author

hgy59 commented Mar 30, 2023

@mreid-tt this works now on DS218 (aarch64) with DSM 6.1

Comment on lines +60 to +69
# If packages contain a package that depends on ffmpeg (or is ffmpeg), then ensure
# relevant ffmpeg4|ffmpeg5|ffmpeg6 is first in list
for package in ${packages}
do
if [ "$(echo ffmpeg${i} ${ffmpeg_dependent_packages} | grep -ow ${package})" != "" ]; then
packages_without_ffmpeg=$(echo "${packages}" | tr ' ' '\n' | grep -v "ffmpeg${i}" | tr '\n' ' ')
packages="ffmpeg${i} ${packages_without_ffmpeg}"
break
fi
done
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@th0ma7 this fix avoids the build of ffmpeg4 for unrelated changes.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent, once merged i'll create a dymmy pr to rouble check it does work when needed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@th0ma7 I already checked by touching tvh (see evaluate dependencies in: https://github.com/SynoCommunity/spksrc/actions/runs/4567381299/jobs/8061093361)
You find three aborted builds for this PR
Build # 5183 has debug output that shows the reason for triggering ffmpeg4
>>> ffmpeg_dependent_packages: version 4 : chromaprint comskip tvheadend

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thnx for fixing that.

@mreid-tt
Copy link
Contributor

@mreid-tt this works now on DS218 (aarch64) with DSM 6.1

Excellent news! I've also re-tested a clean upgrade from mono v5 on both DSM 6 and DSM 7. The tests with Sonarr v3 were all successful.

@hgy59 hgy59 merged commit a578b4b into SynoCommunity:master Mar 30, 2023
17 checks passed
@hgy59 hgy59 added the status/published Published and activated (may take up to 48h until visible in DSM package manager) label Mar 31, 2023
@hgy59 hgy59 deleted the update_mono branch March 31, 2023 20:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/published Published and activated (may take up to 48h until visible in DSM package manager)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Mono version Mono 5.18 SSL store problems on aarch64 platforms
3 participants