New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSBuild 15 #22

Open
jp7677 opened this Issue Mar 24, 2017 · 32 comments

Comments

Projects
None yet
3 participants
@jp7677

jp7677 commented Mar 24, 2017

Hi there,

It seems that Jetbrains rider needs msbuild version 15 for its latest EAP:
https://blog.jetbrains.com/dotnet/2017/03/23/rider-eap-19-new-net-core-less-sass/

When using Ubuntu it is also somehow part of the package one can download directly from mono, see http://download.mono-project.com/repo/debian/pool/main/m/msbuild/.

Any chance to include this here for Fedora as well?

Best regards and thanks for your work here!

@jp7677 jp7677 changed the title from msbuild 15 to MSBuild 15 Mar 24, 2017

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 27, 2017

I have looked at the source of the Debian/Ubuntu package. It seems that it downloads dotnet cli from Microsoft, but that does not seem to work on Fedora Rawhide.

rpmbuild -ba SPECS/msbuild.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.UXuXTE
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf msbuild-c9-osx-release
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/msbuild_15.1+xamarinxplat.2017.02.14.47.38.orig.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd msbuild-c9-osx-release
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.5S5OJp
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd msbuild-c9-osx-release
+ ./cibuild.sh --scope Compile --host Mono --target Mono
debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.8.0 (Stable 4.8.0.520/8f6d0f6 Wed Mar 15 13:47:34 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
** Downloading MSBUILD from https://github.com/Microsoft/msbuild/releases/download/mono-hosted-msbuild-v0.03/mono_msbuild_d25dd923839404bd64cc63f420e75acf96fc75c4.zip
Installing dotnet cli...
Restoring BuildTools version 1.0.27-prerelease-00927-05...
Failed to initialize CoreCLR, HRESULT: 0x80131500
ERROR: Could not restore build tools correctly. See '/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log' for more details.
============= /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log ===========
Running: /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.sh
Installing 'https://dotnetcli.blob.core.windows.net/dotnet/Sdk/1.0.0-preview3-003686/dotnet-dev-ubuntu-x64.1.0.0-preview3-003686.tar.gz' to '/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet.tar'
Running: /root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet restore "/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/1.0.27-prerelease-00927-05/project.json" --no-cache --packages /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --legacy-packages-directory
============= end of /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log ===========
Initializing BuildTools...
/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.sh: line 127: /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-00927-05/lib/init-tools.sh: No such file or directory
ERROR: An error occured when trying to initialize the tools. Please check '/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log' for more details.1
+ exit -1
error: Bad exit status from /var/tmp/rpm-tmp.5S5OJp (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.5S5OJp (%build)

my spec file:

Name:           msbuild
Version:        15.1
Release:        1%{?dist}
Summary:        The Microsoft Build Engine is a platform for building applications.

License:        MIT
URL:            https://github.com/Microsoft/msbuild
Source0:        http://download.mono-project.com/repo/debian/pool/main/m/msbuild/msbuild_15.1+xamarinxplat.2017.02.14.47.38.orig.tar.gz

BuildRequires:  mono-devel

%description
The Microsoft Build Engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but MSBuild does not depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed.

%prep
%setup -q -n %{name}-c9-osx-release

%build

./cibuild.sh --scope Compile --host Mono --target Mono || exit -1

%install

#TODO
DESTDIR=%{buildroot} ./install-mono-prefix.sh /usr

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
# TODO license or copyright
%{_bindir}/*
%{_libdir}/*.so
%{_includedir}/*.h

%changelog
* Mon Mar 27 2017 Timotheus Pokorra <tp@tbits.net> - 15.1-1
- initial package for msbuild
@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 27, 2017

I tried the same on CentOS7, since that seems to be better supported by dotnet (according to https://github.com/dotnet/cli)

but even if I add this line to my spec file, before the cibuild call:

sed -i "s/ubuntu.14.04/centos/g" targets/runtimeDependencies/project.json

I get this error:

EXEC : error : Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos-x64). [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 27, 2017

with regards to dotnet cli and msbuild, I am tempted to wait until they build fine from source, and then I will have another go at it.

@jp7677

This comment has been minimized.

jp7677 commented Mar 27, 2017

Thanks for looking into this.
Regarding the error on your first run, Failed to initialize CoreCLR, HRESULT: 0x80131500: This comes from the fact that the dotnet core version that the installer had downloaded was built against an older version of Fedora with an older version of libicu. It will run fine if you use LD_LIBRARY_PATH to point to that older libicu version. See also dotnet/cli#2018

@jp7677

This comment has been minimized.

jp7677 commented Mar 27, 2017

Regarding the second run, eventually this one: dotnet/cli#3793 ?
Did you used Cent7 or CentOS7.1?

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

I used centos-x64 instead of centos.7-x64 because otherwise I would get another error.

How do I change the rid?

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

The only certain way I know it to temporarily edit /etc/os-release.
Though according to https://github.com/dotnet/netcorecli-fsc/wiki/.NET-Core-SDK-1.0.1 export RuntimeIdentifier=<rid> should work too.

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

PS: Sorry, typo, I meant to ask: Did you used CentOS7-x64 or CentOS7.1-x64?

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

I am using CentOS 7.3.

It seems .Net Core only supports CentOS 7.1. That is ancient...
https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog says in a comment:

Our download page only mentions support for CentOS 7.1 (https://www.microsoft.com/net/core#centos) and the RID that is supported is listed above (centos.7-x64). New versions are supported on an ongoing basis.

I tried now:

export RuntimeIdentifier="centos.7.1-x86"
sed -i "s/ubuntu.14.04/centos.7.1/g" targets/runtimeDependencies/project.json
./cibuild.sh --scope Compile --host Mono --target Mono

but I get:

debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.8.0 (Stable 4.8.0.495/e4a3cf3 Thu Mar  9 10:10:33 CET 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
Tools are already initialized

** Rebuilding MSBuild with downloaded binaries

** using MSBuild in path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe /t:Rebuild "/root/rpmbuild/BUILD/msbuild-c9-osx-release/build.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal  /p:RuntimeSystem=centos /p:CscToolExe=csc.exe /p:CscToolPath=/root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/ /p:DebugType=portable /fl "/flp:v=diag;logfile=/root/rpmbuild/BUILD/msbuild-c9-osx-release/msbuild_bootstrap_build-Mono.log"
Microsoft (R) Build Engine version 14.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring build tools...
  log  : Restoring packages for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json...
  log  : Lock file has not changed. Skipping lock file write. Path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.lock.json
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.targets.
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.props.
  log  : Restore completed in 166ms for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json.
  Building Project(s): build/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): src/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): Samples/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Microsoft.Build.Framework -> /root/rpmbuild/BUILD/msbuild-c9-osx-release/bin/Debug-MONO/Output/Microsoft.Build.Framework.dll
EXEC : error : System.IO.FileSystem 4.0.1 provides a compile-time reference assembly for System.IO.FileSystem on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO.Compression 4.1.0 provides a compile-time reference assembly for System.IO.Compression on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Security.Cryptography.X509Certificates 4.1.0 provides a compile-time reference assembly for System.Security.Cryptography.X509Certificates on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.NetworkInformation 4.1.0 provides a compile-time reference assembly for System.Net.NetworkInformation on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.Http 4.1.0 provides a compile-time reference assembly for System.Net.Http on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : Microsoft.Win32.Primitives 4.0.1 provides a compile-time reference assembly for Microsoft.Win32.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Runtime.Extensions 4.1.0 provides a compile-time reference assembly for System.Runtime.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Reflection 4.1.0 provides a compile-time reference assembly for System.Reflection on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.TraceSource 4.0.0 provides a compile-time reference assembly for System.Diagnostics.TraceSource on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.Process 4.1.0 provides a compile-time reference assembly for System.Diagnostics.Process on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.FileVersionInfo 4.0.0 provides a compile-time reference assembly for System.Diagnostics.FileVersionInfo on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO.Pipes 4.0.0 provides a compile-time reference assembly for System.IO.Pipes on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO.FileSystem.DriveInfo 4.0.0 provides a compile-time reference assembly for System.IO.FileSystem.DriveInfo on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO.FileSystem.Watcher 4.0.0 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Runtime.InteropServices.RuntimeInformation 4.0.0 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Console 4.0.0 provides a compile-time reference assembly for System.Console on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Text.Encoding 4.0.11 provides a compile-time reference assembly for System.Text.Encoding on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Runtime.Handles 4.0.1 provides a compile-time reference assembly for System.Runtime.Handles on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Runtime 4.1.0 provides a compile-time reference assembly for System.Runtime on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO 4.1.0 provides a compile-time reference assembly for System.IO on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Threading.Tasks 4.0.11 provides a compile-time reference assembly for System.Threading.Tasks on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Collections 4.0.11 provides a compile-time reference assembly for System.Collections on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.Debug 4.0.11 provides a compile-time reference assembly for System.Diagnostics.Debug on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Resources.ResourceManager 4.0.1 provides a compile-time reference assembly for System.Resources.ResourceManager on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Runtime.InteropServices 4.1.0 provides a compile-time reference assembly for System.Runtime.InteropServices on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Globalization 4.0.11 provides a compile-time reference assembly for System.Globalization on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Globalization.Calendars 4.0.1 provides a compile-time reference assembly for System.Globalization.Calendars on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Security.Cryptography.Algorithms 4.2.0 provides a compile-time reference assembly for System.Security.Cryptography.Algorithms on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Security.Cryptography.Encoding 4.0.0 provides a compile-time reference assembly for System.Security.Cryptography.Encoding on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.Tracing 4.1.0 provides a compile-time reference assembly for System.Diagnostics.Tracing on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.Primitives 4.0.11 provides a compile-time reference assembly for System.Net.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.Sockets 4.1.0 provides a compile-time reference assembly for System.Net.Sockets on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Diagnostics.Tools 4.0.1 provides a compile-time reference assembly for System.Diagnostics.Tools on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Globalization.Extensions 4.0.1 provides a compile-time reference assembly for System.Globalization.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Reflection.Extensions 4.0.1 provides a compile-time reference assembly for System.Reflection.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Reflection.Primitives 4.0.1 provides a compile-time reference assembly for System.Reflection.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Text.Encoding.Extensions 4.0.11 provides a compile-time reference assembly for System.Text.Encoding.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Threading.Timer 4.0.1 provides a compile-time reference assembly for System.Threading.Timer on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.IO.MemoryMappedFiles 4.0.0 provides a compile-time reference assembly for System.IO.MemoryMappedFiles on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.NameResolution 4.0.0 provides a compile-time reference assembly for System.Net.NameResolution on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.Requests 4.0.11 provides a compile-time reference assembly for System.Net.Requests on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Net.Security 4.0.0 provides a compile-time reference assembly for System.Net.Security on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : System.Text.Encoding.CodePages 4.0.1 provides a compile-time reference assembly for System.Text.Encoding.CodePages on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos.7.1-x64). [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
  
  Errors in /root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json
      System.IO.FileSystem 4.0.1 provides a compile-time reference assembly for System.IO.FileSystem on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO.Compression 4.1.0 provides a compile-time reference assembly for System.IO.Compression on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Security.Cryptography.X509Certificates 4.1.0 provides a compile-time reference assembly for System.Security.Cryptography.X509Certificates on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.NetworkInformation 4.1.0 provides a compile-time reference assembly for System.Net.NetworkInformation on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.Http 4.1.0 provides a compile-time reference assembly for System.Net.Http on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      Microsoft.Win32.Primitives 4.0.1 provides a compile-time reference assembly for Microsoft.Win32.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Runtime.Extensions 4.1.0 provides a compile-time reference assembly for System.Runtime.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Reflection 4.1.0 provides a compile-time reference assembly for System.Reflection on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.TraceSource 4.0.0 provides a compile-time reference assembly for System.Diagnostics.TraceSource on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.Process 4.1.0 provides a compile-time reference assembly for System.Diagnostics.Process on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.FileVersionInfo 4.0.0 provides a compile-time reference assembly for System.Diagnostics.FileVersionInfo on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO.Pipes 4.0.0 provides a compile-time reference assembly for System.IO.Pipes on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO.FileSystem.DriveInfo 4.0.0 provides a compile-time reference assembly for System.IO.FileSystem.DriveInfo on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO.FileSystem.Watcher 4.0.0 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Runtime.InteropServices.RuntimeInformation 4.0.0 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Console 4.0.0 provides a compile-time reference assembly for System.Console on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Text.Encoding 4.0.11 provides a compile-time reference assembly for System.Text.Encoding on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Runtime.Handles 4.0.1 provides a compile-time reference assembly for System.Runtime.Handles on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Runtime 4.1.0 provides a compile-time reference assembly for System.Runtime on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO 4.1.0 provides a compile-time reference assembly for System.IO on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Threading.Tasks 4.0.11 provides a compile-time reference assembly for System.Threading.Tasks on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Collections 4.0.11 provides a compile-time reference assembly for System.Collections on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.Debug 4.0.11 provides a compile-time reference assembly for System.Diagnostics.Debug on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Resources.ResourceManager 4.0.1 provides a compile-time reference assembly for System.Resources.ResourceManager on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Runtime.InteropServices 4.1.0 provides a compile-time reference assembly for System.Runtime.InteropServices on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Globalization 4.0.11 provides a compile-time reference assembly for System.Globalization on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Globalization.Calendars 4.0.1 provides a compile-time reference assembly for System.Globalization.Calendars on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Security.Cryptography.Algorithms 4.2.0 provides a compile-time reference assembly for System.Security.Cryptography.Algorithms on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Security.Cryptography.Encoding 4.0.0 provides a compile-time reference assembly for System.Security.Cryptography.Encoding on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.Tracing 4.1.0 provides a compile-time reference assembly for System.Diagnostics.Tracing on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.Primitives 4.0.11 provides a compile-time reference assembly for System.Net.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.Sockets 4.1.0 provides a compile-time reference assembly for System.Net.Sockets on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Diagnostics.Tools 4.0.1 provides a compile-time reference assembly for System.Diagnostics.Tools on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Globalization.Extensions 4.0.1 provides a compile-time reference assembly for System.Globalization.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Reflection.Extensions 4.0.1 provides a compile-time reference assembly for System.Reflection.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Reflection.Primitives 4.0.1 provides a compile-time reference assembly for System.Reflection.Primitives on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Text.Encoding.Extensions 4.0.11 provides a compile-time reference assembly for System.Text.Encoding.Extensions on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Threading.Timer 4.0.1 provides a compile-time reference assembly for System.Threading.Timer on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.IO.MemoryMappedFiles 4.0.0 provides a compile-time reference assembly for System.IO.MemoryMappedFiles on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.NameResolution 4.0.0 provides a compile-time reference assembly for System.Net.NameResolution on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.Requests 4.0.11 provides a compile-time reference assembly for System.Net.Requests on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Net.Security 4.0.0 provides a compile-time reference assembly for System.Net.Security on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      System.Text.Encoding.CodePages 4.0.1 provides a compile-time reference assembly for System.Text.Encoding.CodePages on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos.7.1-x64.
      One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos.7.1-x64).
/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj(103,5): error MSB3073: The command ""/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet" restore --legacy-packages-directory --packages /root/.nuget/packages "/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json"" exited with code 1
@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

ok, less errors when I do:

export RuntimeIdentifier="centos.7-x86"
sed -i "s/ubuntu.14.04/centos.7/g" targets/runtimeDependencies/project.json
./cibuild.sh --scope Compile --host Mono --target Mono

then I get:

debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.8.0 (Stable 4.8.0.495/e4a3cf3 Thu Mar  9 10:10:33 CET 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
Tools are already initialized

** Rebuilding MSBuild with downloaded binaries

** using MSBuild in path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe /t:Rebuild "/root/rpmbuild/BUILD/msbuild-c9-osx-release/build.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal  /p:RuntimeSystem=centos /p:CscToolExe=csc.exe /p:CscToolPath=/root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/ /p:DebugType=portable /fl "/flp:v=diag;logfile=/root/rpmbuild/BUILD/msbuild-c9-osx-release/msbuild_bootstrap_build-Mono.log"
Microsoft (R) Build Engine version 14.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring build tools...
  log  : Restoring packages for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json...
  log  : Lock file has not changed. Skipping lock file write. Path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.lock.json
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.targets.
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.props.
  log  : Restore completed in 210ms for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json.
  Building Project(s): build/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): src/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): Samples/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Microsoft.Build.Framework -> /root/rpmbuild/BUILD/msbuild-c9-osx-release/bin/Debug-MONO/Output/Microsoft.Build.Framework.dll
EXEC : error : Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos-x64). [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
  
  Errors in /root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json
      Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos-x64.
      One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos-x64).
/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj(103,5): error MSB3073: The command ""/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet" restore --legacy-packages-directory --packages /root/.nuget/packages "/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json"" exited with code 1.
  Dependency -> /root/rpmbuild/BUILD/msbuild-c9-osx-release/bin/Debug-MONO/Output/Dependency.dll

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

Could you try export RuntimeIdentifier="centos.7-x64"? Thus x64 instead of x86?

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

Could you please also remove all project.lock.json? Sometimes dotnet restore has some issues to properly detect that something has changed.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

sorry, I got confused over x86 and x64. Thanks for the pointer!

I also remembered that Mono 4.8 has some increased version numbers, so I went back to Mono 4.6.

rm -f targets/runtimeDependencies/project.lock.json
export RuntimeIdentifier="centos.7-x64"
targets/runtimeDependencies/project.lock.json contains:
    "centos.7-x64": {},
    "centos-x64": {},
./cibuild.sh --scope Compile --host Mono --target Mono --build-only

then I get:

debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.6.2 (Stable 4.6.2.16/ac9e222 Tue Mar 28 09:07:15 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
Tools are already initialized

** Rebuilding MSBuild with downloaded binaries

** using MSBuild in path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/MSBuild.exe /t:Rebuild "/root/rpmbuild/BUILD/msbuild-c9-osx-release/build.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal  /p:RuntimeSystem=centos /p:CscToolExe=csc.exe /p:CscToolPath=/root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/msbuild/ /p:DebugType=portable /fl "/flp:v=diag;logfile=/root/rpmbuild/BUILD/msbuild-c9-osx-release/msbuild_bootstrap_build-Mono.log"
Microsoft (R) Build Engine version 14.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring build tools...
  log  : Restoring packages for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json...
  log  : Lock file has not changed. Skipping lock file write. Path: /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.lock.json
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.targets.
  log  : Generating MSBuild file /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/.nuget.nuget.props.
  log  : Restore completed in 228ms for /root/rpmbuild/BUILD/msbuild-c9-osx-release/src/.nuget/project.json.
  Building Project(s): build/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): src/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): Samples/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Microsoft.Build.Framework -> /root/rpmbuild/BUILD/msbuild-c9-osx-release/bin/Debug-MONO/Output/Microsoft.Build.Framework.dll
EXEC : error : Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos-x64. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos-x64). [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]
  
  Errors in /root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json
      Microsoft.NETCore.Portable.Compatibility 1.0.1 provides a compile-time reference assembly for mscorlib on .NETCoreApp,Version=v1.0, but there is no run-time assembly compatible with centos-x64.
      One or more packages are incompatible with .NETCoreApp,Version=v1.0 (centos-x64).
/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj(103,5): error MSB3073: The command ""/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet" restore --legacy-packages-directory --packages /root/.nuget/packages "/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/runtimeDependencies/project.json"" exited with code 1.
  Dependency -> /root/rpmbuild/BUILD/msbuild-c9-osx-release/bin/Debug-MONO/Output/Dependency.dll
@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

I think we need t make sure that the project.lock.json only contains centos.7-x64 references but no centos-x64. The last one does not seem like a valid RID (https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog).

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

May be you could test your sed magic again project.lock.json, though actually dotnet restore should be responsible for creating a valid project.lock.json from the project.json.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

If I remove centos-x64 from the project.json file, then I get:

MSBUILD : error : Your project.json doesn't list 'centos-x64' as a targeted runtime. You should add '"centos-x64": { }' inside your "runtimes" section in your project.json, and then re-run NuGet restore. [/root/rpmbuild/BUILD/msbuild-c9-osx-release/targets/DeployDependencies.proj]

I don't know where it is getting the centos-x64 from. The file project.lock.json looks ok, it does not have centos-x64.

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

And if you replace centos-x64 with centos.7-x64 in the project.json instead of removing it?

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

It could also be possible that some process is ignoring the RuntimeIdentifier environment variable and will determine the RID based on the /etc/os-release. You could try to hack that file once that the calculated RID results in centos.7-x64.

@jp7677

This comment has been minimized.

jp7677 commented Mar 28, 2017

dotnet --info shows you the RID, either resolved by the RuntimeIdentifier environment variable or by reading /etc/os-release.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 28, 2017

I tried now a docker container with CentOS7.1, and it shows the same behaviour.

I leave it to others to make this work. If someone provides a working path to build msbuild on CentOS or Fedora, I am happy to package it.

@jp7677

This comment has been minimized.

jp7677 commented Mar 29, 2017

Hi @tpokorra
I got it building on my Fedora 25 box. The trick was to

  1. modify the init-tools.sh in line 64 and replace "ubuntu" with "centos". This should take care that the dotnet-dev-centos-x64.1.0.0-preview3-003686.tar.gz package is downloaded during tools initialisation.

  2. Hack the /etc/os-release file so that it contains ID=centos and VERSION_ID=7. This should trick the dotnet cli to think that we are on a supported centos box. Please make sure that ./dotnet --info in the Tools/dotnetcli folder indeed shows RID: centos.7-x64 if the build process still complains about Can not find runtime target for framework...

  3. Depending on your system you will the centos rpm's of libicu-50.1.2-15.el7.x86_64 and point LD_LIBRARY_PATH to the lib64 folder in that archive.

  4. Do not forget to revert the changes in /etc/os-release.

Edit: This was the build for CoreCLR, I invoked cibuild.sh without arguments.. still have to find a way for ./cibuild.sh --target Mono --host Mono to succeed.

@jp7677

This comment has been minimized.

jp7677 commented Mar 29, 2017

Ok, got ./cibuild.sh --target Mono --host Mono to succeed too, though therefore I had to convince the dotnet cli that I'm running ubuntu 16.04. Thus ID=ubuntu and VERSION_ID=16.04 in my /etc/os-release did it. I tried several versions with ID=fedora or ID=centos, but they just don't want to work :(.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 30, 2017

@jp7677 which version of Mono are you using?

Even if I can reproduce this on a local test machine, it would not work on copr, because I don't think I can modify /etc/os-release there.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 30, 2017

my current status:

spec file:

Name:           msbuild
Version:        15.1
Release:        1%{?dist}
Summary:        The Microsoft Build Engine is a platform for building applications.

License:        MIT
URL:            https://github.com/Microsoft/msbuild
Source0:        http://download.mono-project.com/repo/debian/pool/main/m/msbuild/msbuild_15.1+xamarinxplat.2017.02.14.47.38.orig.tar.gz

BuildRequires:  mono-devel
BuildRequires:  libunwind-devel
BuildRequires:  libicu-devel = 50.1.2

%description
The Microsoft Build Engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but MSBuild does not depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed.

%prep
%setup -q -n %{name}-c9-osx-release

%build

#sed -i "s/ubuntu.14.04/centos.7.1/g" targets/runtimeDependencies/project.json
export LD_LIBRARY_PATH=/usr/lib64
#export RuntimeIdentifier="centos.7.1-x86"
sed -i 's/ID="ubuntu"/ID="centos"/g' /etc/os-release
sed -i 's/VERSION_ID="16.04"/VERSION_ID="7"/g' /etc/os-release
sed -i 's/get_current_linux_name() {/get_current_linux_name() { echo "centos"; return 0;/g' cibuild.sh
#./cibuild.sh --scope Compile --host Mono --target Mono || echo "fail for first time"
#rm -f targets/runtimeDependencies/project.lock.json
sed -i 's/ID="centos"/ID="ubuntu"/g' /etc/os-release
sed -i 's/VERSION_ID="7"/VERSION_ID="16.04"/g' /etc/os-release
./cibuild.sh --scope Compile --host Mono --target Mono || exit -1
sed -i 's/ID="ubuntu"/ID="centos"/g' /etc/os-release
sed -i 's/VERSION_ID="16.04"/VERSION_ID="7"/g' /etc/os-release


%install

#TODO
DESTDIR=%{buildroot} ./install-mono-prefix.sh /usr

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
# TODO license or copyright
%{_bindir}/*
%{_libdir}/*.so
%{_includedir}/*.h

%changelog
* Mon Mar 27 2017 Timotheus Pokorra <tp@tbits.net> - 15.1-1
- initial package for msbuild

I get this output on CentOS7.3:

Ausführung(%prep): /bin/sh -e /var/tmp/rpm-tmp.HI5WQc
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf msbuild-c9-osx-release
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/msbuild_15.1+xamarinxplat.2017.02.14.47.38.orig.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd msbuild-c9-osx-release
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Ausführung(%build): /bin/sh -e /var/tmp/rpm-tmp.vv241v
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd msbuild-c9-osx-release
+ export LD_LIBRARY_PATH=/usr/lib64
+ LD_LIBRARY_PATH=/usr/lib64
+ sed -i 's/ID="ubuntu"/ID="centos"/g' /etc/os-release
+ sed -i 's/VERSION_ID="16.04"/VERSION_ID="7"/g' /etc/os-release
+ sed -i 's/get_current_linux_name() {/get_current_linux_name() { echo "centos"; return 0;/g' cibuild.sh
+ sed -i 's/ID="centos"/ID="ubuntu"/g' /etc/os-release
+ sed -i 's/VERSION_ID="7"/VERSION_ID="16.04"/g' /etc/os-release
+ ./cibuild.sh --scope Compile --host Mono --target Mono
debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.6.2 (Stable 4.6.2.16/ac9e222 Tue Mar 28 09:07:15 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
** Downloading MSBUILD from https://github.com/Microsoft/msbuild/releases/download/mono-hosted-msbuild-v0.03/mono_msbuild_d25dd923839404bd64cc63f420e75acf96fc75c4.zip
Installing dotnet cli...
Restoring BuildTools version 1.0.27-prerelease-00927-05...
/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet)
ERROR: Could not restore build tools correctly. See '/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log' for more details.
============= /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log ===========
Running: /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.sh
Installing 'https://dotnetcli.blob.core.windows.net/dotnet/Sdk/1.0.0-preview3-003686/dotnet-dev-ubuntu.16.04-x64.1.0.0-preview3-003686.tar.gz' to '/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet.tar'
Running: /root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/dotnetcli/dotnet restore "/root/rpmbuild/BUILD/msbuild-c9-osx-release/Tools/1.0.27-prerelease-00927-05/project.json" --no-cache --packages /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --legacy-packages-directory
============= end of /root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log ===========
Initializing BuildTools...
/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.sh: line 127: /root/rpmbuild/BUILD/msbuild-c9-osx-release/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-00927-05/lib/init-tools.sh: No such file or directory
ERROR: An error occured when trying to initialize the tools. Please check '/root/rpmbuild/BUILD/msbuild-c9-osx-release/init-tools.log' for more details.1
+ exit -1
Fehler: Fehler-Status beim Beenden von /var/tmp/rpm-tmp.vv241v (%build)


Fehler beim Bauen des RPM:
    Fehler-Status beim Beenden von /var/tmp/rpm-tmp.vv241v (%build)
@jp7677

This comment has been minimized.

jp7677 commented Mar 30, 2017

I had used your latest version, mono 4.8.
About copr, yeah I get that. Shame that the build tools are focused on Ubuntu 16.04 only :(

@jp7677

This comment has been minimized.

jp7677 commented Mar 30, 2017

Could it be that your are missing this one?
Modify the init-tools.sh in line 64 and replace "ubuntu" with "centos". This should take care that the dotnet-dev-centos-x64.1.0.0-preview3-003686.tar.gz package is downloaded during tools initialisation.

Based on the exception I would say that the Ubuntu version of the dotnet cli tools got downloaded.
While I needed to convince the dotnet cli tooling that I'm ubuntu during .net package restore, the tooling itself should be the centos version.

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 31, 2017

You are right, my mistake. I changed cibuild.sh instead of init-tools.sh by accident.

now this is my current msbuild.spec file: https://gist.github.com/tpokorra/31051cfe67bb34524ca7b582a5236db9

Now I can install the rpm on CentOS 7.3, but msbuild does not run. it forks a lot of children, until the resources are spent.

Can you run the msbuild from bin/Debug-MONO/Output on your Fedora 25?

I wonder about this warning during the build:

  Consider app.config remapping of assembly "mscorlib, Culture=neutral, PublicKeyToken=b77a5c561934e089" from Version "2.0.0.0" [] to Version "4.0.0.0" [/usr/lib/mono/4.5/mscorlib.dll] to solve conflict and get rid of warning.

I did not try that yet.

@jp7677

This comment has been minimized.

jp7677 commented Mar 31, 2017

The build artifact is fine on my machine:

mono bin/Debug-MONO/Output/MSBuild.dll /help
Microsoft (R) Build Engine version 15.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

Syntax:              MSBuild.exe [options] [project file | directory]
...

I haven't done anything with remapping, but not sure if I had this warning. Will retry...

@tpokorra

This comment has been minimized.

Owner

tpokorra commented Mar 31, 2017

regarding building on copr: changing the file /etc/os-release does not work indeed:

+ sed -i 's/ID="ubuntu"/ID="centos"/g' /etc/os-release
sed: couldn't open temporary file /etc/sed46ndtx: Permission denied
error: Bad exit status from /var/tmp/rpm-tmp.78zK6V (%build)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.78zK6V (%build)

Another option would be to build msbuild locally, and then tar the binary files, and create a binary package from it. I have seen that done with Arch Linux (https://aur.archlinux.org/packages/msbuild-bin/)

@jp7677

This comment has been minimized.

jp7677 commented Mar 31, 2017

Btw, not sure this makes a difference, but I used the tar.gz here https://github.com/Microsoft/msbuild/releases as source package.

@jp7677

This comment has been minimized.

jp7677 commented Mar 31, 2017

My Build output

./cibuild.sh --scope Compile --target Mono --host Mono
debug: which mono: /usr/bin/mono
MONO_BIN_DIR: 
** Using mono from /usr/bin/mono
Mono JIT compiler version 4.8.0 (Stable 4.8.0.520/8f6d0f6 Thu Mar 23 07:05:09 UTC 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           __thread
	SIGSEGV:       altstack
	Notifications: epoll
	Architecture:  amd64
	Disabled:      none
	Misc:          softdebug 
	LLVM:          supported, not enabled.
	GC:            sgen
Tools are already initialized

** Rebuilding MSBuild with downloaded binaries

** using MSBuild in path: /home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/MSBuild.exe
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug /home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/MSBuild.exe /t:Rebuild "/home/user/Develop/msbuild-15.1.548.43366/build.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal  /p:RuntimeSystem=ubuntu.16.04 /p:CscToolExe=csc.exe /p:CscToolPath=/home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/ /p:DebugType=portable /fl "/flp:v=diag;logfile=/home/user/Develop/msbuild-15.1.548.43366/msbuild_bootstrap_build-Mono.log"
Microsoft (R) Build Engine version 14.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring build tools...
  log  : Restoring packages for /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.json...
  log  : Lock file has not changed. Skipping lock file write. Path: /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.lock.json
  log  : Generating MSBuild file /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/.nuget.nuget.targets.
  log  : Generating MSBuild file /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/.nuget.nuget.props.
  log  : Restore completed in 173ms for /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.json.
  Building Project(s): build/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): src/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): Samples/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Microsoft.Build.Framework -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Framework.dll
  Microsoft.Build.Utilities -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Utilities.Core.dll
  Microsoft.Build -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.dll
  Consider app.config remapping of assembly "mscorlib, Culture=neutral, PublicKeyToken=b77a5c561934e089" from Version "2.0.0.0" [] to Version "4.0.0.0" [/usr/lib/mono/4.5/mscorlib.dll] to solve conflict and get rid of warning.
/home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/Microsoft.Common.CurrentVersion.targets(1827,5): warning MSB3276: Found conflicts between different versions of the same dependent assembly. Please set the "AutoGenerateBindingRedirects" property to true in the project file. For more information, see http://go.microsoft.com/fwlink/?LinkId=294190. [/home/user/Develop/msbuild-15.1.548.43366/src/XMakeCommandLine/MSBuild.csproj]
  MSBuild -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/MSBuild.dll
  Microsoft.Build.Tasks -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Tasks.Core.dll
  Microsoft.Build.Framework.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Framework.UnitTests.dll
  Microsoft.Build.CommandLine.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.CommandLine.UnitTests.dll
  Microsoft.Build.Utilities.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Utilities.UnitTests.dll
  Microsoft.Build.Tasks.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Tasks.UnitTests.dll
  Microsoft.Build.Engine.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Engine.UnitTests.dll
  Microsoft.Build.Engine.OM.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Engine.OM.UnitTests.dll
  TaskUsageLogger -> /home/user/Develop/msbuild-15.1.548.43366/bin/Samples/Debug-MONO/TaskUsageLogger/TaskUsageLogger.dll
  PortableTask -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/PortableTask.dll
  Dependency -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Dependency.dll
  TaskWithDependency -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/TaskWithDependency.dll

** Build completed. Exit code: 0
    1 Warning(s)
    0 Error(s)
Time Elapsed 00:00:39.59
** Log: /home/user/Develop/msbuild-15.1.548.43366/msbuild_bootstrap_build-Mono.log

** Moving bootstrapped MSBuild to the bootstrap folder

** using MSBuild in path: /home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/MSBuild.exe
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug /home/user/Develop/msbuild-15.1.548.43366/packages/msbuild/MSBuild.exe "/home/user/Develop/msbuild-15.1.548.43366/targets/BootStrapMSBuild.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal /fl "/flp:v=diag;logfile=/home/user/Develop/msbuild-15.1.548.43366/msbuild_move_bootstrap-Mono.log"
Microsoft (R) Build Engine version 14.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.


** Build completed. Exit code: 0
    0 Warning(s)
    0 Error(s)
Time Elapsed 00:00:00.56
** Log: /home/user/Develop/msbuild-15.1.548.43366/msbuild_move_bootstrap-Mono.log

** Rebuilding MSBuild with locally built binaries

** using MSBuild in path: "/home/user/Develop/msbuild-15.1.548.43366/bin/Bootstrap/MSBuild.dll"
** using runtime host in path: /usr/bin/mono
** /usr/bin/mono --debug "/home/user/Develop/msbuild-15.1.548.43366/bin/Bootstrap/MSBuild.dll" /t:Build "/home/user/Develop/msbuild-15.1.548.43366/build.proj" /p:OS=Unix /p:Configuration=Debug-MONO /p:OverrideToolHost=/usr/bin/mono /verbosity:minimal  /p:RuntimeSystem=ubuntu.16.04 /p:CscToolExe=csc.exe /p:CscToolPath=/home/user/Develop/msbuild-15.1.548.43366/packages/microsoft.net.compilers/2.0.0-rc3-61110-06/tools /p:DebugType=portable /warnaserror /nowarn:"MSB3276;MSB3277;MSB3026;AL1053" /fl "/flp:v=diag;logfile=/home/user/Develop/msbuild-15.1.548.43366/msbuild_local_build-Mono.log"
Microsoft (R) Build Engine version 15.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring build tools...
  log  : Restoring packages for /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.json...
  log  : Lock file has not changed. Skipping lock file write. Path: /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.lock.json
  log  : Generating MSBuild file /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/.nuget.nuget.targets.
  log  : Generating MSBuild file /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/.nuget.nuget.props.
  log  : Restore completed in 179ms for /home/user/Develop/msbuild-15.1.548.43366/src/.nuget/project.json.
  Building Project(s): build/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): src/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Building Project(s): Samples/dirs.proj : Configuration=Debug-MONO, Platform=AnyCPU 
  Microsoft.Build.Framework -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Framework.dll
  Microsoft.Build.Utilities -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Utilities.Core.dll
  Microsoft.Build -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.dll
  Consider app.config remapping of assembly "mscorlib, Culture=neutral, PublicKeyToken=b77a5c561934e089" from Version "2.0.0.0" [] to Version "4.0.0.0" [/usr/lib/mono/4.5/mscorlib.dll] to solve conflict and get rid of warning.
  MSBuild -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/MSBuild.dll
  Microsoft.Build.Tasks -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Tasks.Core.dll
  Microsoft.Build.Framework.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Framework.UnitTests.dll
  Microsoft.Build.CommandLine.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.CommandLine.UnitTests.dll
  Microsoft.Build.Utilities.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Utilities.UnitTests.dll
  Microsoft.Build.Tasks.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Tasks.UnitTests.dll
  Microsoft.Build.Engine.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Engine.UnitTests.dll
  Microsoft.Build.Engine.OM.UnitTests -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Microsoft.Build.Engine.OM.UnitTests.dll
  TaskUsageLogger -> /home/user/Develop/msbuild-15.1.548.43366/bin/Samples/Debug-MONO/TaskUsageLogger/TaskUsageLogger.dll
  PortableTask -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/PortableTask.dll
  Dependency -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/Dependency.dll
  TaskWithDependency -> /home/user/Develop/msbuild-15.1.548.43366/bin/Debug-MONO/Output/TaskWithDependency.dll

** Build completed. Exit code: 0
    0 Warning(s)
    0 Error(s)
Time Elapsed 00:00:40.63
** Log: /home/user/Develop/msbuild-15.1.548.43366/msbuild_local_build-Mono.log
[user@linux-b07d msbuild-15.1.548.43366]$ mono bin/Debug-MONO/Output/MSBuild.dll /help
Microsoft (R) Build Engine version 15.1.0.0
Copyright (C) Microsoft Corporation. All rights reserved.

I'm seeing the same warning, but the output is still valid.

@mikkeljohnsen

This comment has been minimized.

mikkeljohnsen commented Apr 3, 2017

With the latest clone from git I got this working.

sed -i "s!--legacy-packages-directory!!g" dir.props
sed -i "s!ubuntu.16.04!rhel.7!g" targets/runtimeDependencies/project.json

sed -i "s!microsoft.net.compilers!Microsoft.Net.Compilers!g" cibuild.sh
sed -i "s!ubuntu!rhel.7!g" cibuild.sh

sed -i "s!--legacy-packages-directory!!g" init-tools.sh
sed -i "s!__DOTNET_PATH=\$__TOOLRUNTIME_DIR/dotnetcli!__DOTNET_PATH=/usr/bin!g" init-tools.sh
sed -i "s!rm -rf -- \$__TOOLRUNTIME_DIR;!mkdir -p Tools;!g" init-tools.sh
sed -i "s!cd \$__scriptpath!cd \$__scriptpath\nelse\nmkdir -p \$__TOOLRUNTIME_DIR/dotnetcli; ln -s \$__DOTNET_PATH/dotnet \$__TOOLRUNTIME_DIR/dotnetcli/dotnet!g" init-tools.sh
export __PUBLISH_RID="rhel.7-x64"
export RuntimeIdentifier="fedora.25-x64"
./cibuild.sh --host Mono --target Mono

This requires "dotnet" to be installed on Fedora 25.

$ mono bin/Debug-MONO/Unix_Deployment/MSBuild.dll /help
Microsoft (R) Build Engine version 15.2.0.0
Copyright (C) Microsoft Corporation. All rights reserved.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment