Description of problem: Package keepass fails to build from source in Fedora rawhide. Version-Release number of selected component (if applicable): 2.41-2.fc30 Steps to Reproduce: koji build --scratch f30 keepass-2.41-2.fc30.src.rpm Additional info: This package is tracked by Koschei. See: http://apps.fedoraproject.org/koschei/package/keepass
[pid 16497] write(1, "Task \"Csc\"\n", 11) = 11 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "Using task Csc from Microsoft.Bu"..., 142) = 142 [pid 16497] stat("/usr/lib/mono/4.5/msc.exe", 0x7fff7fd37ff0) = -1 ENOENT (No such file or directory) [pid 16497] lstat("/usr/lib/mono/4.5/msc.exe", 0x7fff7fd37ff0) = -1 ENOENT (No such file or directory) [pid 16497] access("/usr/lib/mono/4.5", F_OK) = 0 [pid 16497] stat("/usr/bin/msc.exe", 0x7fff7fd37ff0) = -1 ENOENT (No such file or directory) [pid 16497] lstat("/usr/bin/msc.exe", 0x7fff7fd37ff0) = -1 ENOENT (No such file or directory) [pid 16497] access("/usr/bin", F_OK) = 0 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "\t", 1) = 1 [pid 16497] write(1, "Task \"Csc\" execution -- FAILED\n", 31) = 31 I suspect "msc" is a typo for "mcs" in https://src.fedoraproject.org/rpms/mono/blob/master/f/mono-5.18.0-use-msc.patch. Will try to rebuild mono with that changed...
New error: CSC: error CS0518: The predefined type `System.Object' is not defined or imported CSC: error CS0518: The predefined type `System.ValueType' is not defined or imported CSC: error CS0518: The predefined type `System.Attribute' is not defined or imported CSC: error CS0518: The predefined type `System.Int32' is not defined or imported CSC: error CS0518: The predefined type `System.UInt32' is not defined or imported CSC: error CS0518: The predefined type `System.Int64' is not defined or imported CSC: error CS0518: The predefined type `System.UInt64' is not defined or imported CSC: error CS0518: The predefined type `System.Single' is not defined or imported CSC: error CS0518: The predefined type `System.Double' is not defined or imported CSC: error CS0518: The predefined type `System.Char' is not defined or imported CSC: error CS0518: The predefined type `System.Int16' is not defined or imported CSC: error CS0518: The predefined type `System.Decimal' is not defined or imported CSC: error CS0518: The predefined type `System.Boolean' is not defined or imported CSC: error CS0518: The predefined type `System.SByte' is not defined or imported CSC: error CS0518: The predefined type `System.Byte' is not defined or imported CSC: error CS0518: The predefined type `System.UInt16' is not defined or imported CSC: error CS0518: The predefined type `System.String' is not defined or imported CSC: error CS0518: The predefined type `System.Enum' is not defined or imported CSC: error CS0518: The predefined type `System.Delegate' is not defined or imported CSC: error CS0518: The predefined type `System.MulticastDelegate' is not defined or imported CSC: error CS0518: The predefined type `System.Void' is not defined or imported CSC: error CS0518: The predefined type `System.Array' is not defined or imported CSC: error CS0518: The predefined type `System.Type' is not defined or imported CSC: error CS0518: The predefined type `System.Collections.IEnumerator' is not defined or imported CSC: error CS0518: The predefined type `System.Collections.IEnumerable' is not defined or imported CSC: error CS0518: The predefined type `System.IDisposable' is not defined or imported CSC: error CS0518: The predefined type `System.IntPtr' is not defined or imported CSC: error CS0518: The predefined type `System.UIntPtr' is not defined or imported CSC: error CS0518: The predefined type `System.RuntimeFieldHandle' is not defined or imported CSC: error CS0518: The predefined type `System.RuntimeTypeHandle' is not defined or imported CSC: error CS0518: The predefined type `System.Exception' is not defined or imported Task "Csc" execution -- FAILED
I am sorry about the typo msc vs mcs. I am about to fix that in the mono package, I did not notice it before. For the other errors, predefined type not defined or imported: I think you need to set the TargetFrameworkVersion to v4.5
Created attachment 1559467 [details] use TargetFrameWork v4.7.1 I have fixed the msc vs mcs in Rawhide, and will create an update for F30. I looked at the TargetFrameworkVersion, and it seems, for Mono 5.18 we need to switch to v4.7.1 See my attached patch, that makes keepass work for Rawhide.
Somehow, the Mono 5.18 is not clean: we have directories /usr/lib/mono/4.7.1-api and /usr/lib/mono/4.5 We probably should rename /usr/lib/mono/4.5 to /usr/lib/mono/4.7, and create symbolic links so that 4.5 points to 4.7 and 4.5-api points to 4.7.1-api That way we don't need to update all rpm packages depending on Mono. What do you think?
I don’t really know enough about .NET and Mono to say. If it’s okay to do that, and if we’re always going to need to build against the latest framework version, would it make sense have something like the following in all of our RPM specs? xbuild … /property:TargetFrameworkVersion=v$(ls /usr/lib/mono/*-api | cut -d/ -f5 | cut -d- -f1 | sort -Vr | head -1) We could provide that via a new RPM macro, %{mono_framework_version}, for example.
A new RPM macro would probably be the cleanest way. But I don't have the time to get that through, since we still would need to change all packages. So I went for the symbolic link, I guess that is ok for the moment. If someone wants to do the clean way, he/she is welcome to work on it :)