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: cert-sync missing? #3033

Closed
ConradHughes opened this issue Dec 6, 2017 · 14 comments
Closed

Mono: cert-sync missing? #3033

ConradHughes opened this issue Dec 6, 2017 · 14 comments

Comments

@ConradHughes
Copy link

ConradHughes commented Dec 6, 2017

For new Package Requests, see the guidelines

Setup

Package Name: Mono
Package Version: 3.10.0 (mono -V)

NAS Model: Synology DS713+
NAS Architecture: Atom D2700
DSM version: 6.1.4-15217 Update 2

Expected behavior

I'm trying to run Duplicati 2.0.2.13 using this version of Mono. I'd hope it would run without complaint.

Actual behavior

As Duplicati starts up I get this warning/error:

No certificates found, you can install some with one of these commands:
    cert-sync /etc/ssl/certs/ca-certificates.crt #for Debian based systems
    cert-sync /etc/pki/tls/certs/ca-bundle.crt #for RedHat derivatives
Read more: http://www.mono-project.com/docs/about-mono/releases/3.12.0/#cert-sync

.. I can find various resources commenting on this, but they all expect cert-sync to be available. I've run "find / -name cert-sync", and it is not present. There were various comments a year or two ago in the "DSM 6.0 experiences" thread which suggest other people are missing cert-sync and expect it to be run during Mono post-install; did anything come of this?

Steps to reproduce

1. Install Mono from SynoCommunity.
2. Install Duplicati from their .spk.
3. Run /volume1/\@appstore/mono/bin/mono /volume1/\@appstore/Duplicati/Duplicati.Server.exe --webservice-interface=any --webservice-port=8200

Package log

Check Package Center or /usr/local/{package}/var/

 -- || Mono Installed | Wed Dec  6 16:13:24 GMT 2017 | Version Info: || -- 
Mono JIT compiler version 3.10.0 (tarball Sat Mar 28 10:18:33 UTC 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       normal
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen

Other logs

n/a

@m4tt075
Copy link
Contributor

m4tt075 commented Dec 7, 2017

ssh into your box and execute the following command:

/var/packages/mono/target/bin/cert-sync /etc/ssl/certs/ca-certificates.crt

An update fixing this issue (and others) is coming, but pending publication.

Edit: Sorry, should have read your full post. OK, you will need a newer mono version. Just manually upgrade to a pre-publication package from here then.

@m4tt075
Copy link
Contributor

m4tt075 commented Dec 7, 2017

^^^ See updated comment.

@ymartin59
Copy link
Contributor

@m4tt075 My attempt to build latest mono (already merged) with arch-x64-5.2 fails with many issues. Here is first of them:

make[8]: Entering directory '/spksrc/native/mono/work-native/mono-5.4.1.6/mono/mini'
  CCLD     mono-sgen
./.libs/libmini-static.a(libmini_static_la-mini-runtime.o): In function `mono_resolve_patch_target':
/spksrc/native/mono/work-native/mono-5.4.1.6/mono/mini/mini-runtime.c:1595: undefined reference to `mono_gc_get_card_table'
/spksrc/native/mono/work-native/mono-5.4.1.6/mono/mini/mini-runtime.c:1602: undefined reference to `mono_gc_get_nursery'
/spksrc/native/mono/work-native/mono-5.4.1.6/mono/mini/mini-runtime.c:1609: undefined reference to `mono_gc_get_nursery'
./.libs/libmini-static.a(libmini_static_la-mini-runtime.o): In function `mono_jit_compile_method_with_opt':
/spksrc/native/mono/work-native/mono-5.4.1.6/mono/mini/mini-runtime.c:2085: undefined reference to `mono_gc_is_critical_method'

I compile with Docker image. Is there any additional requirements to succeed ?

@m4tt075
Copy link
Contributor

m4tt075 commented Dec 7, 2017

@ymartin59 Hmh, the same package just compiled fine in my VirtualBox environment. If you have built other (possibly 6.1) packages before, you should run make clean in the native/mono directory in addition to the spk/mono directory. This is not automatic and might be the culprit. Otherwise, no idea...

@ConradHughes
Copy link
Author

ConradHughes commented Dec 7, 2017

Thanks for such a quick and helpful response @m4tt075 — as you suggested, the latest pre-publication version that you pointed me at (Mono 6.1_5.4.1.6-9) solves the cert issue, and that (it turns out) solves other problems that I thought were unconnected.

Is there a problem with the release process that the officially available SynoCommunity version (3.1) is so far behind?

@m4tt075
Copy link
Contributor

m4tt075 commented Dec 7, 2017

@ConradHughes Happy to hear that. We have had some significant challenges with Synology's changes to third party packages, some of which still need to be finally addressed. And we do not have a lot of developers, so everything just takes a volunteer willing and interested to look into certain packages or problems and (usually some more) time. Open source stuff. Needs to stay fun. That's all.

@ymartin59
Copy link
Contributor

@m4tt075 There is chance mono compilation uses tools available in your ubuntu virtual box... but no available in Debian Docker image...
@Safihre May you help about this mono compilation issue (see few comments below) ? How did you build your packages ?

@Safihre
Copy link
Contributor

Safihre commented Dec 9, 2017

@ymartin59 I use also the Docker image via Travis, it very simply does:

docker pull synocommunity/spksrc; 
docker run -it -v `pwd`:/spksrc synocommunity/spksrc /bin/bash -c "cd /spksrc && make setup && cd spk/$PKG && make $SYNOARCH >/dev/null"

https://travis-ci.org/Safihre/spksrc/builds/309734708

@ymartin59
Copy link
Contributor

@m4tt075 @Safihre I wonder if compilation succeeds for you because of compilation has been done before with previous version. Is it really expected cross/mono/Makefile PKG_VERS_MAJOR is still 4.6.2 ?!?

@Safihre
Copy link
Contributor

Safihre commented Dec 9, 2017

Huh? It says 5.4.1?
https://github.com/SynoCommunity/spksrc/blob/master/cross/mono/Makefile#L2
My Travis pulls a fresh Docker image every time, no caches or anything.

@Safihre
Copy link
Contributor

Safihre commented Dec 9, 2017

Ahh, I see that in the dsm6 branch it's still 4.6.1.
For my Travis builds I manually applied the PR of @m4tt075 to the dsm6 branch.

We really need to go to 1 branch and not master/dsm6! 💯

@ymartin59
Copy link
Contributor

Stupid me, I was on dsm6 branch... I let it for later, I am working on service user creation...

@m4tt075
Copy link
Contributor

m4tt075 commented Dec 9, 2017

@ymartin59 Just for you, Sir! PR #3039 😃

@Safihre
Copy link
Contributor

Safihre commented Feb 26, 2018

Should now all be fixed with the new mono release that also preserves certificates correctly on DSM update.

@Safihre Safihre closed this as completed Feb 26, 2018
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

No branches or pull requests

4 participants