[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

ChaosBlades

Contributor
Joined
Jul 4, 2015
Messages
137
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

Explorer
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

Patron
Joined
May 17, 2018
Messages
269
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

Cadet
Joined
Dec 21, 2014
Messages
9
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

Dabbler
Joined
Nov 13, 2016
Messages
49
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

Dabbler
Joined
Nov 13, 2016
Messages
49
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

Cadet
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
 

drinking12many

Contributor
Joined
Apr 8, 2012
Messages
148
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

Contributor
Joined
Jan 20, 2017
Messages
132
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

Explorer
Joined
Oct 6, 2014
Messages
59
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).
 

drinking12many

Contributor
Joined
Apr 8, 2012
Messages
148
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

Dabbler
Joined
Apr 12, 2017
Messages
41
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

Patron
Joined
May 11, 2015
Messages
218
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

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

thxtex

Dabbler
Joined
Dec 8, 2017
Messages
27
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

Dabbler
Joined
Apr 12, 2017
Messages
41
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

Cadet
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