Pinta won't compile on latest version of mono
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Pinta |
Fix Released
|
Undecided
|
Cameron White |
Bug Description
I was trying to compile the pinta source code from the git repo and I failed to make pinta. I was unfamiliar with mono, but I know how to search the web. I was able to come to the conclusion that it had to do with Mono.Unix (for the scripts that included the using Mono.Unix; line) which is found in the Mono.Posix dll. I found out that if I change a line in all the .csproj files that include Mono.Posix, I was able to fix it.
Here's how:
1. Go to a .csproj file that uses Mono.Posix (for example Pinta.Core/
2. find the line that says something like this:
<Reference Include=
<Reference Include="System" />
3. And change Version=2.0.0.0 to Version=4.0.0.0
4. Save the file and move onto the next .csproj file.
Why is this like that?
If you look at the top of the .csproj file it mentions that it is using ToolsVersion="4.0", which I'm assuming is mono version 4.0, however the .csproj is trying to use the old 2.0 version of the Mono.Posix.dll, which doesn't exist in the 4.0 (or 4.5) directory of mono.
Unfortunately, I was still unable to install Pinta. during the sudo make install section I got more errors. It was complaining about how MakeDir was not a registered program, or something like that. I was able to fix that by changing ToolsVersion="3.5" to ToolsVersion="4.0" at the start of the Pinta.Install.Proj file.
System that produced the errors:
x86_64 Arch Linux Installation running KDE and the very latest updates.
mono 4.2.1.102-1 (https:/
mono-addins 1.1-1 (https:/
I was also able to find two other people on Ubuntu with the same problem as mine:
https:/
https:/
description: | updated |
Changed in pinta: | |
status: | Fix Committed → Fix Released |
Bug seems to be still existing in commit ad23dab (2016-04-27).
With master commit ad23dab (2016-04-27) i'm getting errors like these: DockItem. cs(34,12) : error CS0234: The type or namespace name `Unix' does not exist in the namespace `Mono'. Are you missing an assembly reference? DockItemContain er.cs(33, 12): error CS0234: The type or namespace name `Unix' does not exist in the namespace `Mono'. Are you missing an assembly reference? DockItemTitleTa b.cs(33, 12): error CS0234: The type or namespace name `Unix' does not exist in the namespace `Mono'. Are you missing an assembly reference?
DockLibrary/
DockLibrary/
DockLibrary/
With Pinta-1.6 i'm getting errors like these: WindowActions. cs(30,12) : error CS0234: The type or namespace name `Unix' does not exist in the namespace `Mono'. Are you missing an assembly reference? AddinActions. cs(28,12) : error CS0234: The type or namespace name `Unix' does not exist in the namespace `Mono'. Are you missing an assembly reference?
Actions/
...
Actions/
The autogen.sh / configure script probably needs some code to adjust this to the Mono version installed on the build system!
Found an easy way to workaround this here:
http:// mono.1490590. n4.nabble. com/Missing- quot-Unix- quot-inside- of-quot- Mono-quot- td4665988. html
Looks like the Fedora people just use two "find ... sed ..." to fix this in their build system.
http:// pkgs.fedoraproj ect.org/ cgit/rpms/ pinta.git/ pkgs.fedoraproj ect.org/ cgit/rpms/ pinta.git/ commit/ ?id=2cd05548655 5c83cbea92915f9 183c039e7f9763h ttp://pkgs. fedoraproject. org/cgit/ rpms/pinta. git/commit/ ?id=62c7cfbc9f8 df1fa634ecdaf59 81e83be5d04628
http://
I Put those "find ... sed ..." commands in a script for you. (see attached Pinta-1. 6_mono4- patch-script. sh)
It should work for Pinta-1.6 and master commit ad23dab (2016-04-27).
Be careful when running the script! It will change files without backup and without further notice!