Register for the iXsystems Community to get an ad-free experience and exclusive discounts in our eBay Store.
[How-To] Manually upgrade mono from 5.10 to 5.20 in a FreeNAS Jail

[How-To] Manually upgrade mono from 5.10 to 5.20 in a FreeNAS Jail

Western Digital Drives - The Preferred Drives of FreeNAS and TrueNAS CORE

ChaosBlades

Member
Joined
Jul 4, 2015
Messages
99
ChaosBlades submitted a new resource:

[How-To] Manually upgrade mono from 5.10 to 5.20 in a FreeNAS Jail - How to upgrade mono before support is dropped for 5.10 in Sonarr, Radarr, Lidarr, and Jackett

With the recent version of Lidarr (0.7.0.1347) older versions of mono were broken and I found out that "soonish" it would drop support from the current latest FreeBSD version of mono 5.10 (26 Feb 2018 ) for 5.18 (21 Dec 2018 ). Same with Sonarr and probably Radarr and Jackett as well. So if we don't get a newer version (6.0.0 is the latest) of mono "soonish" on FreeBSD then we could find ourselves in a situation where auto-updates to these apps will break them. That is if the...
Read more about this resource...
 

IronRobi

Member
Joined
Apr 15, 2016
Messages
52
Just gave this a shot and it worked like a charm. Fixed the issues I was having since updating Lidarr. Thank you!
 

rmccullough

Member
Joined
May 17, 2018
Messages
220
So does Lidarr not run well if you do not update your version of mono?

If change /etc/pkg/FreeBSD.conf to use "latest" instead of "quarterly" for the updates, it finds a lot of updates, but not mono 5.20:
Code:
    x265: 3.0_1 -> 3.1.2_2
    webp: 1.0.2 -> 1.0.3_1
    tinyxml2: 7.0.1_1,1 -> 7.1.0,1
    sqlite3: 3.28.0 -> 3.29.0
    py27-setuptools: 41.0.1 -> 41.2.0
    py27-pillow: 6.0.0_1 -> 6.1.0
    pciids: 20190620 -> 20190725
    p11-kit: 0.23.16.1 -> 0.23.17
    opencv-core: 3.4.1_18 -> 3.4.1_22
    nettle: 3.4.1_1 -> 3.5.1_1
    nano: 4.2 -> 4.4
    mono: 5.10.1.57_1 -> 5.10.1.57_2
    libzen: 19.04 -> 19.09
    libx264: 0.157.2945 -> 0.157.2980
    libvpx: 1.8.0 -> 1.8.1_1
    libva: 2.4.1_1 -> 2.5.0
    libtasn1: 4.13_1 -> 4.14
    libogg: 1.3.3,4 -> 1.3.4,4
    libmediainfo: 19.04 -> 19.09
    libdrm: 2.4.98_1,1 -> 2.4.99,1
    gnutls: 3.6.8 -> 3.6.9
    freetype2: 2.10.0 -> 2.10.1
    flac: 1.3.2 -> 1.3.3
    ffmpeg: 4.1.4_1,1 -> 4.2.1_1,1
    expat: 2.2.6_1 -> 2.2.7
    chromaprint: 1.4.3_4 -> 1.4.3_6
    ca_root_nss: 3.45 -> 3.46
    bash: 5.0.7 -> 5.0.11


Is it a good idea to run those updates as well?

Is it not possible to update mono using pkg? I would feel a lot better about doing that rather than building out of ports.
 

jkng88

Neophyte
Joined
Dec 21, 2014
Messages
6
Thanks for the guide. Got it working only when i change "cd /usr/ports/devel/llvm80 " to "cd /usr/ports/devel/llvm90".

Just FYI
 

fireheadman

Member
Joined
Nov 13, 2016
Messages
45
ran into this issue....
on this step:


cd /usr/ports/lang/mono
make -DBATCH install clean


===> libepoxy-1.5.2 needs Python 3.3 at least, but 2.7 was specified.
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/graphics/libepoxy
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/x11-servers/xorg-vfbserver
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/mono
 

fireheadman

Member
Joined
Nov 13, 2016
Messages
45
UPDATE:
Can confirm, this worked when I did the following in the instruction set:
change "cd /usr/ports/devel/llvm80 " to "cd /usr/ports/devel/llvm90"

1570225651576.png



From Lidarr, I am back online and running mono v5.20.xxx

1570225570795.png
 

cadavor

Neophyte
Joined
Dec 6, 2015
Messages
4
Don't waste time to compile llvm80 (or llvm90 more recently) and libepoxy.
Just install package :
pkg install -y llvm80 libepoxy-1.5.2
Then you can make mono
Worked well for me today
 
Joined
Apr 8, 2012
Messages
136
Yeah as cadavor said the new enough versions of llvm80 and libepoxy are out there now if you just do pkg install. I just compiled the mono package. Then ran make package and just copied the .txz over to my jails. Still had to install the llvm80 and libepoxy package but worked great.

Oh a note on my sonarr I also had to install libiconv I guess it was already there on my lidarr and radarr but somehow not on my sonarr.
 
Last edited:

mow4cash

Member
Joined
Jan 20, 2017
Messages
129
Yeah as cadavor said the new enough versions of llvm80 and libepoxy are out there now if you just do pkg install. I just compiled the mono package. Then ran make package and just copied the .txz over to my jails. Still had to install the llvm80 and libepoxy package but worked great.

Oh a note on my sonarr I also had to install libiconv I guess it was already there on my lidarr and radarr but somehow not on my sonarr.
I was asking when mono 5.20 would be available as a pkg without compiling.
 

Muddro

Member
Joined
Oct 6, 2014
Messages
51
Yeah as cadavor said the new enough versions of llvm80 and libepoxy are out there now if you just do pkg install. I just compiled the mono package. Then ran make package and just copied the .txz over to my jails. Still had to install the llvm80 and libepoxy package but worked great.

Oh a note on my sonarr I also had to install libiconv I guess it was already there on my lidarr and radarr but somehow not on my sonarr.
How does one do make package?

On another note, instructions worked fine and worked for me. 1 note, I had to use llvm80 not llvm90 for it to work (using pkg install).
 
Joined
Apr 8, 2012
Messages
136
you go to the directory for mono under your ports after you have compiled and literally run "make package" this creates a tarball which you can then copy to other jails/installations for install then just run "pkg add -f /tmp/mono.whatever.txz"
 

PnoT

Member
Joined
Apr 12, 2017
Messages
36
Running into the following

Code:
configure: error: Package requirements (x11 >= 1.6 xext xextproto videoproto) were not met:

Package 'xproto', required by 'x11', not found
Package 'kbproto', required by 'x11', not found
Package 'xextproto', required by 'xext', not found
Package 'xextproto', required by 'virtual:world', not found
Package 'videoproto', required by 'virtual:world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables XV_CFLAGS
and XV_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
===>  Script "configure" failed unexpectedly.
Please report the problem to x11@FreeBSD.org [maintainer] and attach the
"/usr/ports/x11/libXv/work/libXv-1.0.11/config.log" including the output of
the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/x11/libXv
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/graphics/mesa-dri
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/x11-servers/xorg-vfbserver
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/mono
 

Ixian

Member
Joined
May 11, 2015
Messages
98
No one else has had this issue?
As mentioned above the instructions in the original post are a little overkill. You just need to install the latest versions of llvm80 and libepoxy, no need to build them, just use the package manager:

pkg install -y llvm80 libepoxy-1.5.2

Then build mono as outlined by ChaosBlades in the OP after patching it.

Then, as drinking12tomany explains, you can simply build a pkg version of the new Mono you just updated and use that in any other jails you have that may need it, that way you don't even have to re-build Mono for those.
 

PnoT

Member
Joined
Apr 12, 2017
Messages
36
I tried the to compile it again and the same issue but using a fresh Jail worked great! Thanks
 

thxtex

Junior Member
Joined
Dec 8, 2017
Messages
15
Running into the following

Code:
configure: error: Package requirements (x11 >= 1.6 xext xextproto videoproto) were not met:

Package 'xproto', required by 'x11', not found
Package 'kbproto', required by 'x11', not found
Package 'xextproto', required by 'xext', not found
Package 'xextproto', required by 'virtual:world', not found
Package 'videoproto', required by 'virtual:world', not found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables XV_CFLAGS
and XV_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
===>  Script "configure" failed unexpectedly.
Please report the problem to x11@FreeBSD.org [maintainer] and attach the
"/usr/ports/x11/libXv/work/libXv-1.0.11/config.log" including the output of
the failure of your make command. Also, it might be a good idea to provide
an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/x11/libXv
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/graphics/mesa-dri
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/x11-servers/xorg-vfbserver
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/mono
I run into exactly the same issue. I have followed the suggestions in this thread but end up as shown.

I build a fresh jail with "mono","nano","perl5","llvm80","libepoxy-1.5.2". Change to 'latest' from 'quarterly' in FreeBSD.conf which will update Perl to 5.30.1. Then updating the version string in 'PORTVERSION=' and start the build.

Any suggestions on what might be wrong?

TIA
 

PnoT

Member
Joined
Apr 12, 2017
Messages
36
I'm not entirely sure what fixed my issue other than moving to a fresh Jail and following the instructions. Both times I tried to compile in one jail using the exact instructions and it kept failing. Wish someone could nail down the problem.
 

waterboy1602

Neophyte
Joined
Dec 3, 2017
Messages
5
I tried to follow the guide, but ran into this error. Is there someone who could help me fixing this error?

Code:
root@Torrents:/usr/ports/lang/mono # make install clean
===> Building/installing dialog4ports as it is required for the config dialog
===>  Cleaning for dialog4ports-0.1.6
===>  License BSD2CLAUSE accepted by the user
===>   dialog4ports-0.1.6 depends on file: /usr/local/sbin/pkg - found
=> dialog4ports-0.1.6.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch https://files.etoilebsd.net/dialog4ports/dialog4ports-0.1.6.tar.gz
dialog4ports-0.1.6.tar.gz                               10 kB  219 MBps    00s
===> Fetching all distfiles required by dialog4ports-0.1.6 for building
===>  Extracting for dialog4ports-0.1.6
=> SHA256 Checksum OK for dialog4ports-0.1.6.tar.gz.
===>  Patching for dialog4ports-0.1.6
===>  Configuring for dialog4ports-0.1.6
===>  Building for dialog4ports-0.1.6
/bin/sh: cannot create :/root/.cshrcbin:/usr/local/go/bin:/root/.gopkg/bin/usr/local/go/bin/root/.gopkg/bin:/usr/local/go/bin:/root/.gopkg/bin:/usr/local/go/bin:/root/.gopkg/bin: No such file or directory
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/ports-mgmt/dialog4ports
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/ports-mgmt/dialog4ports
===> Options unchanged
===>  License MIT accepted by the user
===>   mono-5.20.1.34_2 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by mono-5.20.1.34_2 for building
===>  Extracting for mono-5.20.1.34_2
=> SHA256 Checksum OK for mono-5.20.1.34.tar.bz2.
=> SHA256 Checksum OK for monolite-linux-1051000004-latest.tar.gz.
/bin/mkdir -p /usr/ports/lang/mono/work/mono-5.20.1.34/mcs/class/lib/monolite-linux
/bin/mv /usr/ports/lang/mono/work/monolite-linux-1051000004-latest /usr/ports/lang/mono/work/mono-5.20.1.34/mcs/class/lib/monolite-linux/1051000004
===>  Patching for mono-5.20.1.34_2
===>  Applying FreeBSD patches for mono-5.20.1.34_2
===>   Ignoring patchfile patch-configure.ac.orig
===>   Ignoring patchfile patch-mcs_class_Mono.Security_Mono.Security.Cryptography_KeyPairPersistence.cs.orig
===>   Ignoring patchfile patch-mono_mini_tramp-amd64.c.orig
===>   Ignoring patchfile patch-mono_tests_Makefile.am.orig
===>   Ignoring patchfile patch-mono_utils_mono-context.h.orig
===>   Ignoring patchfile patch-mono_utils_mono-state.c.orig
/usr/bin/sed -i.bak -e 's|^#!/bin/bash|#!/usr/bin/env bash|g'  /usr/ports/lang/mono/work/mono-5.20.1.34/scripts/mono-find-provides.in  /usr/ports/lang/mono/work/mono-5.20.1.34/scripts/mono-find-requires.in  /usr/ports/lang/mono/work/mono-5.20.1.34/scripts/mono-test-install
/usr/bin/find /usr/ports/lang/mono/work/mono-5.20.1.34 -name '*.sh' | /usr/bin/xargs /usr/bin/sed -i.bak  -e 's|^#!/bin/bash|#!/bin/sh|g'
/usr/bin/sed 's/tarball/5.20.1.34/' /usr/ports/lang/mono/work/mono-5.20.1.34/mono/mini/Makefile.am.in  > /usr/ports/lang/mono/work/mono-5.20.1.34/mono/mini/Makefile.am
/usr/bin/sed -i.bak -e 's|/usr/share|/usr/local|g'  /usr/ports/lang/mono/work/mono-5.20.1.34/mcs/class/corlib/System/Environment.cs  /usr/ports/lang/mono/work/mono-5.20.1.34/external/corefx/src/System.Runtime.Extensions/src/System/Environment.Unix.cs
/usr/bin/sed -i.bak -e 's|/usr/share/.mono|/usr/local/share/mono|g'  /usr/ports/lang/mono/work/mono-5.20.1.34/man/mono-configuration-crypto.1  /usr/ports/lang/mono/work/mono-5.20.1.34/man/mono.1  /usr/ports/lang/mono/work/mono-5.20.1.34/man/mozroots.1
===>   mono-5.20.1.34_2 depends on package: p5-XML-Parser>=0 - not found
===>  License ART10 GPLv1+ accepted by the user
===>   p5-XML-Parser-2.44 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by p5-XML-Parser-2.44 for building
===>  Extracting for p5-XML-Parser-2.44
=> SHA256 Checksum OK for XML-Parser-2.44.tar.gz.
===>  Patching for p5-XML-Parser-2.44
===>  Applying FreeBSD patches for p5-XML-Parser-2.44
===>   p5-XML-Parser-2.44 depends on package: perl5>=5.30.r1<5.31 - found
===>   p5-XML-Parser-2.44 depends on shared library: libexpat.so - found (/usr/local/lib/libexpat.so)
===>  Configuring for p5-XML-Parser-2.44
/bin/sh: cannot create :/root/.cshrcbin:/usr/local/go/bin:/root/.gopkg/bin/usr/local/go/bin/root/.gopkg/bin:/usr/local/go/bin:/root/.gopkg/bin:/usr/local/go/bin:/root/.gopkg/bin: No such file or directory
*** Error code 2

Stop.
make[2]: stopped in /usr/ports/textproc/p5-XML-Parser
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/mono
*** Error code 1

Stop.
 
Top