# Banshee 2.6.0 compile error



## mrmarbury (Aug 29, 2013)

Hi again,

I have a problem with the Banshee port that I hoped would solve itself with the next Banshee upgrade. But there wasn't any since the last Mono upgrade. Which, in my opinion, broke Banshee again?

When trying to build Banshee it stops here:


```
./Hyena.Data.Gui/ColumnCellText.cs(115,29): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
error CS1705: Assembly `gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f' references `Mono.Cairo, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' which has a higher version number than imported assembly `Mono.Cairo, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(53,53): error CS0012: The type `Cairo.Context' is defined in an assembly that is not referenced. Consider adding a reference to assembly `Mono.Cairo, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(238,31): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(393,31): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(451,31): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(486,27): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListView/ListView_Rendering.cs(494,27): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListViewTestModule.cs(243,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Data.Gui/ListViewTestModule.cs(255,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/Brush.cs(67,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/CanvasHost.cs(153,24): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/Prelight.cs(47,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Canvas/Prelight.cs(50,18): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Canvas/ShadowMarginStyle.cs(69,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/Slider.cs(156,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/Slider.cs(172,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Canvas/Slider.cs(175,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/TestTile.cs(58,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Canvas/TextBlock.cs(220,22): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Theming/GtkTheme.cs(94,27): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Theming/GtkTheme.cs(97,18): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Theming/GtkTheme.cs(100,27): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(137,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(139,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(155,20): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Theming/GtkTheme.cs(157,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(196,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(199,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(224,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Theming/GtkTheme.cs(227,18): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Theming/GtkTheme.cs(243,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Theming/GtkTheme.cs(247,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(250,18): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Theming/GtkTheme.cs(265,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(278,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(300,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(305,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(316,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(325,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(349,24): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(362,24): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Gui.Theming/GtkTheme.cs(369,26): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Gui.Theming/GtkTheme.cs(375,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(383,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui.Theming/GtkTheme.cs(392,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/CairoDamageDebugger.cs(52,16): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/CairoExtensions.cs(70,34): warning CS0618: `Cairo.Context.Target' is obsolete: `Use GetTarget/SetTarget'
./Hyena.Gui/CairoExtensions.cs(70,59): warning CS0618: `Cairo.Context.Target' is obsolete: `Use GetTarget/SetTarget'
./Hyena.Gui/CairoExtensions.cs(322,30): warning CS0618: `Cairo.Context.Target' is obsolete: `Use GetTarget/SetTarget'
./Hyena.Gui/RatingRenderer.cs(96,28): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/RatingRenderer.cs(98,28): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/RatingRenderer.cs(102,24): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/ShadingTestWindow.cs(61,24): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Gui/ShadingTestWindow.cs(71,24): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Widgets/PulsingButton.cs(107,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/PulsingButton.cs(109,18): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(336,16): warning CS0618: `Cairo.Context.Source' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(351,20): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(361,22): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(376,17): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(391,15): warning CS0618: `Cairo.Surface.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(415,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(417,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(417,24): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(424,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(426,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(426,24): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(443,20): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(448,20): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(455,16): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(458,20): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(459,27): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(460,26): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(493,20): warning CS0618: `Cairo.Context.Pattern' is obsolete: `Use GetSource/GetSource'
./Hyena.Widgets/SegmentedBar.cs(495,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Widgets/SegmentedBar.cs(497,22): warning CS0618: `Cairo.Pattern.Destroy()' is obsolete: `Use Dispose()'
./Hyena.Widgets/SegmentedBar.cs(508,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
./Hyena.Widgets/SegmentedBar.cs(517,20): warning CS0618: `Cairo.Context.Color' is obsolete: `Use SetSourceRGBA method'
Compilation failed: 2 error(s), 77 warnings
gmake[4]: *** [../../../bin/Hyena.Gui.dll] Error 1
gmake[3]: *** [all-recursive] Error 1
gmake[2]: *** [all-recursive] Error 1
gmake[1]: *** [all-recursive] Error 1
gmake: *** [all] Error 2
```

The complete build log is attached (it's `gzip`'ed since it is 1k 1 KB too large). I already tried MAKE_JOBS_UNSAFE, `autoreconf`, rebuilding all mono and mono related packages. As well as gdk-sharp.

I only found one other unanswered thread in some mailing list. But I cannot imagine I'm the only one with this problem?

Hope somebody has a clue what is wrong here?

Cheers,
Stefan


----------



## SirDice (Aug 29, 2013)

It looks like it has a problem with graphics/cairo. Is that port up to date?


----------



## mrmarbury (Aug 29, 2013)

Howdy.

I have cairo-1.10.2_5,2 installed. Reinstalled it again and it didn't help. What I recognized is that it stopped compiling after the latest bigger Mono upgrade. But as I told recompiling everything Mono didn't help.

Cheers,
Stefan


----------



## mrmarbury (Aug 29, 2013)

I forgot, with poudriere the build was failing for the same reason.


----------



## SirDice (Aug 29, 2013)

Have you tried contacting the port maintainer? It might be something that needs to be fixed upstream.


----------



## mrmarbury (Aug 29, 2013)

*T*hat would be my next step. I first wanted to make sure there is no easy fix. I guess now is a good time to do this. 

Cheers,
Stefan


----------



## SirDice (Aug 29, 2013)

Oddly enough, there are no errors reported on the FreeBSD package servers but the package is nowhere to be found.

http://portsmon.freebsd.org/portoverview.py?category=multimedia&portname=banshee


----------



## alptekinsanli (Nov 3, 2013)

I might add that Banshee is the most classical music friendly player that I've been able to find----simply in that it can display 'Composer' and 'Grouping' columns, and can arrange tracks with respect to these tags.

So until it's fixed, could anyone suggest another player which can do the same?


----------



## mrmarbury (Dec 2, 2013)

Well, I wrote the maintainer several times but no answer. So I kind of fixed it myself. 

Until now it's just a dirty hack but it works-for-me (TM). But I am talking to the freebsd-hackers list to make this a real patch for the Banshee port. Maybe somebody with the same errors likes to test this? It works for me, if I do the following:

copy the patch to /usr/ports/multimedia/banshee/files/patch-sdk4:


```
$FreeBSD$

--- src/Backends/Banshee.Osx/Makefile.in
+++ src/Backends/Banshee.Osx/Makefile.in
@@ -416,7 +416,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ASSEMBLY = Banshee.Osx
-ASSEMBLY_BUILD_FLAGS = -unsafe
+ASSEMBLY_BUILD_FLAGS = -unsafe -sdk:4
 TARGET = library
 LINK = $(REF_BACKEND_OSX) $(am__append_1)
 INSTALL_DIR = $(BACKENDS_INSTALL_DIR)
--- src/Core/Banshee.ThickClient/Makefile.in
+++ src/Core/Banshee.ThickClient/Makefile.in
@@ -417,7 +417,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ASSEMBLY = Banshee.ThickClient
 TARGET = library
-ASSEMBLY_BUILD_FLAGS = -unsafe
+ASSEMBLY_BUILD_FLAGS = -unsafe -sdk:4
 LINK = $(REF_BANSHEE_THICKCLIENT) $(am__append_1)
 SOURCES = \
        Banshee.Addins.Gui/AddinView.cs \
--- src/Core/Banshee.Widgets/Makefile.in
+++ src/Core/Banshee.Widgets/Makefile.in
@@ -417,7 +417,7 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ASSEMBLY = Banshee.Widgets
 TARGET = library
-ASSEMBLY_BUILD_FLAGS = -unsafe
+ASSEMBLY_BUILD_FLAGS = -unsafe -sdk:4
 LINK = $(REF_BANSHEE_WIDGETS) $(am__append_1)
 SOURCES = \
        Banshee.Widgets/CustomActionProxy.cs \
--- src/Hyena/Hyena.Gui/Makefile.in
+++ src/Hyena/Hyena.Gui/Makefile.in
@@ -416,7 +416,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ASSEMBLY = Hyena.Gui
-ASSEMBLY_BUILD_FLAGS = -unsafe
+ASSEMBLY_BUILD_FLAGS = -unsafe -sdk:4
 TARGET = library
 LINK = -r:ICSharpCode.SharpZipLib -r:Mono.Posix -r:System \
        -r:System.Core -r:Mono.Cairo $(GTKSHARP_LIBS) \
```
I didn't find the attachment button so please copy the above to the file yourself (with the blank line on top - I don't know if this a necessary but I found this in other patches).
export a variable:

```
export ASSEMBLY_BUILD_FLAGS="-unsafe -sdk:4"
```

do a `make clean install` (or `make clean reinstall`) in the Banshee ports directory.
I hope that works for somebody else.

Cheers,
Stefan


----------

