GNOME Bugzilla – Bug 640126
Build failure on Windows
Last modified: 2011-02-01 00:23:30 UTC
Created attachment 178901 [details] Build Log for Banshee git-master on Windows Hi. I today attempted another build of banshee on Windows, in MonoDevelop, using a fully updated version of the snapshot provided on http://banshee.fm/download/development/#windows . Again I experienced a build failure and I will attach my build log to this bug. I expect that most/all the errors are due to Bug 639808 "Remove Package elements from Reference elements in csproj files".
Created attachment 178903 [details] Build Log for patched Banshee on Windows Strangely, after applying 0001-Remove-all-Package-elements-from-project-references.patch from Bug 639808, I still had a build failure, and was 10 Warnings down (6 left) - but still 194 Errors. Attached is an build log for the patched branch.
(In reply to comment #1) > Created an attachment (id=178903) [details] > Build Log for patched Banshee on Windows > > Strangely, after applying > 0001-Remove-all-Package-elements-from-project-references.patch from Bug 639808, > I still had a build failure, and was 10 Warnings down (6 left) - but still 194 > Errors. Attached is an build log for the patched branch. That's interesting. Can you check the references nodes in the solution explorer and see which assemblies are shown as missing?
One sec, i'll just boot into windows, try again and have a look..
Sorry - I cant find a "Solution Explorer" anywhere in MonoDevelop...
Well, I've noticed one thing. On the patched build, all errors seem to be "error CS0246", and there is more variety in the six warnings.
I removed " - due to Bug 639808?" since applying the patch from that bug affects only 10 warnings (of 16) and no errors (194).
Created attachment 179027 [details] Build log of patched banshee - building banshee not nereid I noticed that for some reason I was building "Nereid" instead of "Banshee", and when I corrected to building the entire solution, I encountered 213 Errors and 10 Warnings (with the patch), as opposed to 195 Errors and 6 Warnings building only part before. Attached is a build log of my patched branch building the entire solution (well, windows configuration anyway).
(In reply to comment #4) > Sorry - I cant find a "Solution Explorer" anywhere in MonoDevelop... It's the tree at the left that lists all of the projects and files. Your build log seems to indicate that it can't find GTK#. Obviously, you have it, since you are in MonoDevelop, so the problem is a bit more subtle. Please check the references for a couple of projects and let me know which ones it says are missing. Specifically, check Nereid, Banshee.Widgets, and Banshee.ThickClient.
Created attachment 179044 [details] A list of broken References. Incomplete reference locations. Ok, I have just spent ages going through the references in Solution Explorer. Frankly - I gave up, but I think I got down all the reference names that had errors - I just couldn't complete the task of listing all the locations those references were made with error. See the attachment for a list of "broken" references with some of their locations adjacent.
Basically, every part of the solution had reference errors - mainly atk-sharp, gdk-sharp, glib-sharp and gtk-sharp - but also others -- see attachment.
Guys, FYI newer versions of Mono would help with this problem, as the C# compiler has been made more strict wrt references (see https://bugzilla.novell.com/show_bug.cgi?id=543537 ). This way, it's just a matter to make Banshee build in Linux with this new version of Mono (not sure if Mono 2.10 incorporates this fix), commit the build fixes, and hopefully the Windows build will be in better health.
(In reply to comment #9) > I have just spent ages going through the references in Solution Explorer. > Frankly - I gave up, but I think I got down all the reference names that had > errors - I just couldn't complete the task of listing all the locations those > references were made with error. > I think you gave enough. I think if its broken for one it will be broken for them all. > See the attachment for a list of "broken" references with some of their > locations adjacent. The first group are as I expected; MonoDevelop can't find GTS# or GStreamer#. Try this and report what you find: 1. Right-click the "References" folder for one of the projects and choose "Edit References" 2. Scroll through the list on the "Packages" tab and look for the missing references. Tick the checkboxes of the ones you find 3. Remove the broken references from the list at the bottom. I think they turn red, so you can just click them and click the "-" button Regardless of whether that works, please post one of your csproj files so I can look at it and see what the differences are.
Ok, That work's a treat for individual ones, but there's millions to do, all in separate References sections... Is this something wrong with the trunk branch, or something more individualized, and impossible to patch?
(In reply to comment #13) > Ok, > > That work's a treat for individual ones, but there's millions to do, all in > separate References sections... > > Is this something wrong with the trunk branch, or something more > individualized, and impossible to patch? I'm not sure; please post your modified csproj file so I can see what was changed. Perhaps a patch is possible, depending on what it was.
Ok - something I noticed: All the broken references have no metadata - the broken ones had a location of "gtk-sharp", whereas the manually added/working ones have version information, "Culture" a "PublicKeyToken"...
I cant see a "csproj" file - only "Banshee.sln" and "Banshee.userprefs" (Banshee.userprefs is the only file not synked with the git-master - other than the patch and any build-files ofcourse)
(In reply to comment #16) > I cant see a "csproj" file - only "Banshee.sln" and "Banshee.userprefs" > (Banshee.userprefs is the only file not synked with the git-master - other than > the patch and any build-files ofcourse) The csproj files are inside the project folders. Banshee.Widgets, for example, is in src\Core\Banshee.Widgets\Banshee.Widgets.csproj
Created attachment 179046 [details] Fixed Muinshee.csproj. Oh, ok - here is a modified Muinshee.csproj. It had atk-sharp, gdk-sharp, glib-sharp and gtk-sharp broken.
Created attachment 179047 [details] Still broken Banshee.ThickClient.csproj. For comparison, this Banshee.ThickClient.csproj is still broken. It has the same broken references, plus pango-sharp.
Created attachment 179048 [details] Build Log of patched banshee - with manual reference corrections to all-but "Extentions" Wow - after going through everything exept Extensions (laziness), I attempted to "Rebuild banshee" and found only 1 Error, plus 22 Warnings. Build Log attached.
This bug report is really messy. What is the actual bug? Matt, please attach any changes as git patches. And try to keep the number of patches and logs to a minimum. Is this not a dupe of bug #639808 ?
The bug is a build failure. And it appears that the cause of the bug is broken references. To fix the references, I went through each, removed the bad references and added them again from the list. It still doesn't build but I believe that to be a different cause. Dustin asked me to attach some csproj files (one corrected and one still broken) so that he could look at the changes. If this doesn't break the build on other systems, I will repeat the changes in a cleaner git branch and propose a patch.
(In reply to comment #11) > Guys, FYI newer versions of Mono would help with this problem, as the C# > compiler has been made more strict wrt references (see > https://bugzilla.novell.com/show_bug.cgi?id=543537 ). FYI I just tested Mono 2.10 and unfortunately it seems not to include this fix (because the build works).
Sorry, why is it unfortunate that the build works?
(In reply to comment #24) > Sorry, why is it unfortunate that the build works? If the build doesn't work on Windows with MS.NET, the build should fail in Linux as well with Mono. This is what BNC#543537 is supposed to fix, but apparently its fix is not included in 2.10. (If it was included, the patch to fix the build in Linux would fix the build in Windows as well, so the builds between different operating systems would not get desynchronized ever again.)
Ok, today I pulled to my banshee branch, took too manual snapshots (copied out everything except .git directories) one for Visual C# 2010 Express Edition, and one for the new MonoDevelop 2.4.2.1 - alot of changes! I kept the snapshots seperate so that building one wouldn't effect the other. The diff on both banshee and banshee/bin was quite large, and there was alot of windows-specific changes too, like the edition of a /build/windows directory. Anyway here are my build results: MonoDevelop 2.4.2.1: Building banshee: 0 Errors, 3 Warnings (1 in Hyena, 2 in Hyena.Data.Sqlite), Exit code 1 (Custom command failed) Running had more difficulties Visual C# 2010 Express Edition: Failed miserably
Am marking this bug as "RESOLVED/NOTABUG" because it is too vague and messy to be of use to the developers, and because many others have successfully built and run banshee on Windows systems.