diff --git a/Documentation/manpages/sdk/dotnet-publish.1 b/Documentation/manpages/sdk/dotnet-publish.1 index 9528410d8..4464ac0d2 100644 --- a/Documentation/manpages/sdk/dotnet-publish.1 +++ b/Documentation/manpages/sdk/dotnet-publish.1 @@ -54,8 +54,16 @@ Publish\ the\ application\ for\ a\ given\ framework\ identifier\ (FID).\ If\ not Publish\ the\ application\ for\ a\ given\ runtime.\ If\ the\ option\ is\ not\ specified,\ the\ command\ will\ default\ to\ the\ runtime\ for\ the\ current\ operationg\ system.\ Supported\ values\ for\ the\ option\ at\ this\ time\ are: \ \ \ \ *\ ubuntu.14.04\-x64 +\ \ \ \ *\ ubuntu.16.04\-x64 \ \ \ \ *\ win7\-x64 +\ \ \ \ *\ win7\-x86 \ \ \ \ *\ osx.10.10\-x64 +\ \ \ \ *\ osx.10.11\-x64 +\ \ \ \ *\ centos.7\-x64 +\ \ \ \ *\ rhel.7.2\-x64 +\ \ \ \ *\ debian.8\-x64 +\ \ \ \ *\ fedora.23\-x64 +\ \ \ \ *\ opensuse.13.2\-x64 \f[] .fi .PP diff --git a/README.md b/README.md index 6d5864565..c65c9e632 100644 --- a/README.md +++ b/README.md @@ -50,12 +50,19 @@ Ubuntu Installers *Our Debian packages are put together slightly differently than the other OS specific installers. Instead of combining everything, we have three separate component packages that depend on each other. If you're installing these directly from the .deb files (via dpkg or similar), then you'll need to install them in the order presented below.* +**For Ubuntu 14.04 + | |Version |Installers| |---------|:------:|:------:|:------:| |**Shared Host**|[![](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/preview/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Installers/Latest/dotnet-host-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)| |**Shared Framework**|[![](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/preview/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Installers/Latest/dotnet-sharedframework-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/dotnet-ubuntu-x64.latest.tar.gz)| |**Sdk**|[![](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/Ubuntu_x64_Release_version_badge.svg)](https://dotnetcli.blob.core.windows.net/dotnet/preview/dnvm/latest.ubuntu.x64.version)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Installers/Latest/dotnet-sdk-ubuntu-x64.latest.deb)|[Download](https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/Latest/dotnet-dev-ubuntu-x64.latest.tar.gz)| +Interested in .NET Core + ASP.NET Core 1.0 RC1 bits? +---------------------------------------------------- + +This toolchain is independent from the DNX-based .NET Core + ASP.NET Core 1.0 RC1 bits. If you are looking for .NET Core + ASP.NET Core 1.0 RC1 bits, you can find instructions on the http://get.asp.net/. +>>>>>>> Undoing documentation changes to include ubuntu16.04. Will add it back once we have VSO builds running happily and producing binaries for it. Docker ------ diff --git a/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/project.json b/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/project.json index 82c4025c1..f0ddc3088 100644 --- a/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/project.json +++ b/TestAssets/TestPackages/dotnet-hello/v1/dotnet-hello/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/project.json b/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/project.json index 33cc2e1b6..309cf5866 100644 --- a/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/project.json +++ b/TestAssets/TestPackages/dotnet-hello/v2/dotnet-hello/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/AppWithBomGlobalJson/project.json b/TestAssets/TestProjects/AppWithBomGlobalJson/project.json index a8bb620bc..92bc45c15 100644 --- a/TestAssets/TestProjects/AppWithBomGlobalJson/project.json +++ b/TestAssets/TestProjects/AppWithBomGlobalJson/project.json @@ -15,9 +15,12 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} }, "tools": { "dotnet-portable": { diff --git a/TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json b/TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json index c0b1fb111..daf36ce6c 100644 --- a/TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json +++ b/TestAssets/TestProjects/AppWithDirectAndToolDependency/project.json @@ -19,9 +19,12 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} }, "tools": { "dotnet-portable": { diff --git a/TestAssets/TestProjects/AppWithDirectDependency/project.json b/TestAssets/TestProjects/AppWithDirectDependency/project.json index 06231b4c7..6f334a860 100644 --- a/TestAssets/TestProjects/AppWithDirectDependency/project.json +++ b/TestAssets/TestProjects/AppWithDirectDependency/project.json @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/AppWithOutputAssemblyName/project.json b/TestAssets/TestProjects/AppWithOutputAssemblyName/project.json index 298171333..3a1ab341d 100644 --- a/TestAssets/TestProjects/AppWithOutputAssemblyName/project.json +++ b/TestAssets/TestProjects/AppWithOutputAssemblyName/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/AppWithToolDependency/project.json b/TestAssets/TestProjects/AppWithToolDependency/project.json index 8517a9421..08ab95018 100644 --- a/TestAssets/TestProjects/AppWithToolDependency/project.json +++ b/TestAssets/TestProjects/AppWithToolDependency/project.json @@ -21,8 +21,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/CompileFail/project.json b/TestAssets/TestProjects/CompileFail/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/CompileFail/project.json +++ b/TestAssets/TestProjects/CompileFail/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/DependencyChangeTest/PortableApp_Standalone/project.json.modified b/TestAssets/TestProjects/DependencyChangeTest/PortableApp_Standalone/project.json.modified index fdd68facc..1531be0a1 100644 --- a/TestAssets/TestProjects/DependencyChangeTest/PortableApp_Standalone/project.json.modified +++ b/TestAssets/TestProjects/DependencyChangeTest/PortableApp_Standalone/project.json.modified @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/DependencyContextValidator/TestApp/project.json b/TestAssets/TestProjects/DependencyContextValidator/TestApp/project.json index 20a46c02e..41852e2b9 100644 --- a/TestAssets/TestProjects/DependencyContextValidator/TestApp/project.json +++ b/TestAssets/TestProjects/DependencyContextValidator/TestApp/project.json @@ -22,8 +22,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/DependencyContextValidator/TestAppDeps/project.json b/TestAssets/TestProjects/DependencyContextValidator/TestAppDeps/project.json index 8ad85a6a2..ee6772cdd 100644 --- a/TestAssets/TestProjects/DependencyContextValidator/TestAppDeps/project.json +++ b/TestAssets/TestProjects/DependencyContextValidator/TestAppDeps/project.json @@ -21,8 +21,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/EndToEndTestApp/project.json b/TestAssets/TestProjects/EndToEndTestApp/project.json index d1d4354e4..a5a5a0642 100644 --- a/TestAssets/TestProjects/EndToEndTestApp/project.json +++ b/TestAssets/TestProjects/EndToEndTestApp/project.json @@ -34,8 +34,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/FSharpTestProjects/CompileFailApp/project.json b/TestAssets/TestProjects/FSharpTestProjects/CompileFailApp/project.json index c810481bf..05c9447c0 100644 --- a/TestAssets/TestProjects/FSharpTestProjects/CompileFailApp/project.json +++ b/TestAssets/TestProjects/FSharpTestProjects/CompileFailApp/project.json @@ -37,8 +37,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/FSharpTestProjects/TestApp/project.json b/TestAssets/TestProjects/FSharpTestProjects/TestApp/project.json index b7532d344..6d594b5d1 100644 --- a/TestAssets/TestProjects/FSharpTestProjects/TestApp/project.json +++ b/TestAssets/TestProjects/FSharpTestProjects/TestApp/project.json @@ -38,8 +38,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/FSharpTestProjects/TestAppWithArgs/project.json b/TestAssets/TestProjects/FSharpTestProjects/TestAppWithArgs/project.json index d79295176..cc7255ab5 100644 --- a/TestAssets/TestProjects/FSharpTestProjects/TestAppWithArgs/project.json +++ b/TestAssets/TestProjects/FSharpTestProjects/TestAppWithArgs/project.json @@ -34,8 +34,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/KestrelSample/KestrelStandalone/project.json b/TestAssets/TestProjects/KestrelSample/KestrelStandalone/project.json index 62947213a..a772ee702 100644 --- a/TestAssets/TestProjects/KestrelSample/KestrelStandalone/project.json +++ b/TestAssets/TestProjects/KestrelSample/KestrelStandalone/project.json @@ -30,8 +30,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/OutputStandardOutputAndError/project.json b/TestAssets/TestProjects/OutputStandardOutputAndError/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/OutputStandardOutputAndError/project.json +++ b/TestAssets/TestProjects/OutputStandardOutputAndError/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetApp/project.json b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetApp/project.json index 8f77d7a05..2d067899d 100644 --- a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetApp/project.json +++ b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetApp/project.json @@ -26,8 +26,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraph/TwoTargetP0/project.json b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraph/TwoTargetP0/project.json index 73730cd38..6b9c8f50e 100644 --- a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraph/TwoTargetP0/project.json +++ b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraph/TwoTargetP0/project.json @@ -30,8 +30,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraphLarge/TwoTargetLargeP0/project.json b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraphLarge/TwoTargetLargeP0/project.json index e6d279703..99447d12b 100644 --- a/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraphLarge/TwoTargetLargeP0/project.json +++ b/TestAssets/TestProjects/PerformanceTestProjects/TwoTargetGraphLarge/TwoTargetLargeP0/project.json @@ -30,8 +30,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/PortableTests/StandaloneApp/project.json b/TestAssets/TestProjects/PortableTests/StandaloneApp/project.json index 97270a72c..11e935623 100644 --- a/TestAssets/TestProjects/PortableTests/StandaloneApp/project.json +++ b/TestAssets/TestProjects/PortableTests/StandaloneApp/project.json @@ -15,9 +15,12 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} }, "runtimeOptions": { "somethingString": "anything", diff --git a/TestAssets/TestProjects/TestAppCompilationContext/TestApp/project.json b/TestAssets/TestProjects/TestAppCompilationContext/TestApp/project.json index b90d7df4e..ca3b41fc0 100644 --- a/TestAssets/TestProjects/TestAppCompilationContext/TestApp/project.json +++ b/TestAssets/TestProjects/TestAppCompilationContext/TestApp/project.json @@ -17,8 +17,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppSimple/project.json b/TestAssets/TestProjects/TestAppSimple/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/TestAppSimple/project.json +++ b/TestAssets/TestProjects/TestAppSimple/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithArgs/project.json b/TestAssets/TestProjects/TestAppWithArgs/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/TestAppWithArgs/project.json +++ b/TestAssets/TestProjects/TestAppWithArgs/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithContentPackage/project.json b/TestAssets/TestProjects/TestAppWithContentPackage/project.json index 446a96462..aa48a5853 100644 --- a/TestAssets/TestProjects/TestAppWithContentPackage/project.json +++ b/TestAssets/TestProjects/TestAppWithContentPackage/project.json @@ -22,8 +22,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithContents/project.json b/TestAssets/TestProjects/TestAppWithContents/project.json index c79a7ea97..411de8989 100644 --- a/TestAssets/TestProjects/TestAppWithContents/project.json +++ b/TestAssets/TestProjects/TestAppWithContents/project.json @@ -21,8 +21,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithLibrary/TestApp/project.json b/TestAssets/TestProjects/TestAppWithLibrary/TestApp/project.json index 3fd8cd7ee..f878539a7 100644 --- a/TestAssets/TestProjects/TestAppWithLibrary/TestApp/project.json +++ b/TestAssets/TestProjects/TestAppWithLibrary/TestApp/project.json @@ -20,8 +20,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithResourceDeps/project.json b/TestAssets/TestProjects/TestAppWithResourceDeps/project.json index 02919223b..1f4a458fa 100644 --- a/TestAssets/TestProjects/TestAppWithResourceDeps/project.json +++ b/TestAssets/TestProjects/TestAppWithResourceDeps/project.json @@ -26,8 +26,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithScripts/project.json b/TestAssets/TestProjects/TestAppWithScripts/project.json index 6d94ddf35..39c39bc6e 100644 --- a/TestAssets/TestProjects/TestAppWithScripts/project.json +++ b/TestAssets/TestProjects/TestAppWithScripts/project.json @@ -15,9 +15,12 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} }, "scripts": { "prepublish": [ diff --git a/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestApp/project.json b/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestApp/project.json index 31f00612e..f3b08db44 100644 --- a/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestApp/project.json +++ b/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestApp/project.json @@ -20,9 +20,12 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} }, "scripts": { "prepublish": [ diff --git a/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestLibrary2/project.json b/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestLibrary2/project.json index 4d008509c..6c8af4fe2 100644 --- a/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestLibrary2/project.json +++ b/TestAssets/TestProjects/TestAppWithTransitiveAppDependency/TestLibrary2/project.json @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithUnicodéPath/project.json b/TestAssets/TestProjects/TestAppWithUnicodéPath/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/TestAppWithUnicodéPath/project.json +++ b/TestAssets/TestProjects/TestAppWithUnicodéPath/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestAppWithWrapperProjectDependency/TestApp/project.json b/TestAssets/TestProjects/TestAppWithWrapperProjectDependency/TestApp/project.json index 3fd8cd7ee..f878539a7 100644 --- a/TestAssets/TestProjects/TestAppWithWrapperProjectDependency/TestApp/project.json +++ b/TestAssets/TestProjects/TestAppWithWrapperProjectDependency/TestApp/project.json @@ -20,8 +20,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestMicrosoftCSharpReference/project.json b/TestAssets/TestProjects/TestMicrosoftCSharpReference/project.json index 246fd9656..011369217 100644 --- a/TestAssets/TestProjects/TestMicrosoftCSharpReference/project.json +++ b/TestAssets/TestProjects/TestMicrosoftCSharpReference/project.json @@ -20,8 +20,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestMicrosoftCSharpReferenceMissingFramework/project.json b/TestAssets/TestProjects/TestMicrosoftCSharpReferenceMissingFramework/project.json index 332d0a909..be24cfb94 100644 --- a/TestAssets/TestProjects/TestMicrosoftCSharpReferenceMissingFramework/project.json +++ b/TestAssets/TestProjects/TestMicrosoftCSharpReferenceMissingFramework/project.json @@ -25,8 +25,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestMscorlibReference/project.json b/TestAssets/TestProjects/TestMscorlibReference/project.json index ffe0ab3d9..fadab596e 100644 --- a/TestAssets/TestProjects/TestMscorlibReference/project.json +++ b/TestAssets/TestProjects/TestMscorlibReference/project.json @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestProjectToProjectDependencies/src/L0/project.json b/TestAssets/TestProjects/TestProjectToProjectDependencies/src/L0/project.json index accd0e07c..399ea5eec 100644 --- a/TestAssets/TestProjects/TestProjectToProjectDependencies/src/L0/project.json +++ b/TestAssets/TestProjects/TestProjectToProjectDependencies/src/L0/project.json @@ -17,8 +17,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestProjectWithCultureSpecificResource/project.json b/TestAssets/TestProjects/TestProjectWithCultureSpecificResource/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/TestProjectWithCultureSpecificResource/project.json +++ b/TestAssets/TestProjects/TestProjectWithCultureSpecificResource/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestProjectWithResource/project.json b/TestAssets/TestProjects/TestProjectWithResource/project.json index 023897937..5a7531a06 100644 --- a/TestAssets/TestProjects/TestProjectWithResource/project.json +++ b/TestAssets/TestProjects/TestProjectWithResource/project.json @@ -15,8 +15,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestSimpleIncrementalApp/project.json b/TestAssets/TestProjects/TestSimpleIncrementalApp/project.json index 83b25c202..ca47de82d 100644 --- a/TestAssets/TestProjects/TestSimpleIncrementalApp/project.json +++ b/TestAssets/TestProjects/TestSimpleIncrementalApp/project.json @@ -16,8 +16,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestSystemCoreReference/project.json b/TestAssets/TestProjects/TestSystemCoreReference/project.json index 2651fb5af..2c8a9f45d 100644 --- a/TestAssets/TestProjects/TestSystemCoreReference/project.json +++ b/TestAssets/TestProjects/TestSystemCoreReference/project.json @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/TestAssets/TestProjects/TestSystemReference/project.json b/TestAssets/TestProjects/TestSystemReference/project.json index ed392c985..dc9cb06f7 100644 --- a/TestAssets/TestProjects/TestSystemReference/project.json +++ b/TestAssets/TestProjects/TestSystemReference/project.json @@ -19,8 +19,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/build_projects/Microsoft.DotNet.Cli.Build.Framework/CurrentPlatform.cs b/build_projects/Microsoft.DotNet.Cli.Build.Framework/CurrentPlatform.cs index b232c92dd..bed1206c5 100644 --- a/build_projects/Microsoft.DotNet.Cli.Build.Framework/CurrentPlatform.cs +++ b/build_projects/Microsoft.DotNet.Cli.Build.Framework/CurrentPlatform.cs @@ -57,6 +57,24 @@ namespace Microsoft.DotNet.Cli.Build.Framework } } + public static bool IsFedora + { + get + { + var osname = RuntimeEnvironment.OperatingSystem; + return string.Equals(osname, "fedora", StringComparison.OrdinalIgnoreCase); + } + } + + public static bool IsOpenSuse + { + get + { + var osname = RuntimeEnvironment.OperatingSystem; + return string.Equals(osname, "opensuse", StringComparison.OrdinalIgnoreCase); + } + } + public static bool IsUnix { get @@ -78,10 +96,15 @@ namespace Microsoft.DotNet.Cli.Build.Framework { get { - return IsUbuntu || IsCentOS || IsRHEL || IsDebian; + return IsUbuntu || IsCentOS || IsRHEL || IsDebian || IsFedora || IsOpenSuse; } } + public static bool IsPlatform(BuildPlatform platform, string version = null) + { + return IsPlatform(platform) && (version == null || IsVersion(version)); + } + public static bool IsPlatform(BuildPlatform platform) { switch (platform) @@ -98,6 +121,10 @@ namespace Microsoft.DotNet.Cli.Build.Framework return IsRHEL; case BuildPlatform.Debian: return IsDebian; + case BuildPlatform.Fedora: + return IsFedora; + case BuildPlatform.OpenSuse: + return IsOpenSuse; case BuildPlatform.Unix: return IsUnix; case BuildPlatform.Linux: @@ -107,6 +134,11 @@ namespace Microsoft.DotNet.Cli.Build.Framework } } + public static bool IsVersion(string version) + { + return RuntimeEnvironment.OperatingSystemVersion.Equals(version, StringComparison.OrdinalIgnoreCase); + } + private static BuildPlatform DetermineCurrentPlatform() { if (IsWindows) @@ -133,6 +165,14 @@ namespace Microsoft.DotNet.Cli.Build.Framework { return BuildPlatform.Debian; } + else if (IsFedora) + { + return BuildPlatform.Fedora; + } + else if (IsOpenSuse) + { + return BuildPlatform.OpenSuse; + } else { return default(BuildPlatform); diff --git a/build_projects/Microsoft.DotNet.Cli.Build.Framework/Enumerations/BuildPlatform.cs b/build_projects/Microsoft.DotNet.Cli.Build.Framework/Enumerations/BuildPlatform.cs index 46578d3ca..56552dc24 100644 --- a/build_projects/Microsoft.DotNet.Cli.Build.Framework/Enumerations/BuildPlatform.cs +++ b/build_projects/Microsoft.DotNet.Cli.Build.Framework/Enumerations/BuildPlatform.cs @@ -9,6 +9,8 @@ namespace Microsoft.DotNet.Cli.Build.Framework Ubuntu = 5, CentOS = 6, RHEL = 7, - Debian = 8 + Debian = 8, + Fedora = 9, + OpenSuse = 10 } } diff --git a/build_projects/Microsoft.DotNet.Cli.Build.Framework/TargetConditions/BuildPlatformsAttribute.cs b/build_projects/Microsoft.DotNet.Cli.Build.Framework/TargetConditions/BuildPlatformsAttribute.cs index 28c934a6f..1c4814b33 100644 --- a/build_projects/Microsoft.DotNet.Cli.Build.Framework/TargetConditions/BuildPlatformsAttribute.cs +++ b/build_projects/Microsoft.DotNet.Cli.Build.Framework/TargetConditions/BuildPlatformsAttribute.cs @@ -7,6 +7,7 @@ namespace Microsoft.DotNet.Cli.Build.Framework public class BuildPlatformsAttribute : TargetConditionAttribute { private IEnumerable _buildPlatforms; + private string _version; public BuildPlatformsAttribute(params BuildPlatform[] platforms) { @@ -18,11 +19,17 @@ namespace Microsoft.DotNet.Cli.Build.Framework _buildPlatforms = platforms; } + public BuildPlatformsAttribute(BuildPlatform platform, string version) + { + _buildPlatforms = new BuildPlatform[] { platform }; + _version = version; + } + public override bool EvaluateCondition() { foreach (var platform in _buildPlatforms) { - if (CurrentPlatform.IsPlatform(platform)) + if (CurrentPlatform.IsPlatform(platform, _version)) { return true; } diff --git a/build_projects/dotnet-cli-build/CompileTargets.cs b/build_projects/dotnet-cli-build/CompileTargets.cs index c695ddf4a..a8af93df8 100644 --- a/build_projects/dotnet-cli-build/CompileTargets.cs +++ b/build_projects/dotnet-cli-build/CompileTargets.cs @@ -45,10 +45,13 @@ namespace Microsoft.DotNet.Cli.Build { "osx.10.10-x64", "osx.10.10-x64" }, { "osx.10.11-x64", "osx.10.10-x64" }, { "ubuntu.14.04-x64", "ubuntu.14.04-x64" }, + { "ubuntu.16.04-x64", "ubuntu.16.04-x64" }, { "centos.7-x64", "rhel.7-x64" }, { "rhel.7-x64", "rhel.7-x64" }, { "rhel.7.2-x64", "rhel.7-x64" }, - { "debian.8-x64", "debian.8-x64" } + { "debian.8-x64", "debian.8-x64" }, + { "fedora.23-x64", "fedora.23-x64" }, + { "opensuse.13.2-x64", "opensuse.13.2-x64" } }; public const string SharedFrameworkName = "Microsoft.NETCore.App"; diff --git a/build_projects/dotnet-cli-build/DebTargets.cs b/build_projects/dotnet-cli-build/DebTargets.cs index ab9324e8d..0fab6aa82 100644 --- a/build_projects/dotnet-cli-build/DebTargets.cs +++ b/build_projects/dotnet-cli-build/DebTargets.cs @@ -13,14 +13,14 @@ namespace Microsoft.DotNet.Cli.Build public class DebTargets { [Target(nameof(GenerateSdkDeb))] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult GenerateDebs(BuildTargetContext c) { return c.Success(); } [Target(nameof(InstallSharedFramework))] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult GenerateSdkDeb(BuildTargetContext c) { var channel = c.BuildContext.Get("Channel").ToLower(); @@ -61,7 +61,7 @@ namespace Microsoft.DotNet.Cli.Build [Target(nameof(InstallSDK), nameof(RunE2ETest), nameof(RemovePackages))] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult TestDebInstaller(BuildTargetContext c) { return c.Success(); @@ -92,7 +92,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult RunE2ETest(BuildTargetContext c) { Directory.SetCurrentDirectory(Path.Combine(Dirs.RepoRoot, "test", "EndToEnd")); @@ -111,7 +111,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult RemovePackages(BuildTargetContext c) { IEnumerable orderedPackageNames = new List() diff --git a/build_projects/dotnet-cli-build/PrepareTargets.cs b/build_projects/dotnet-cli-build/PrepareTargets.cs index b96a8762c..1b69277a2 100644 --- a/build_projects/dotnet-cli-build/PrepareTargets.cs +++ b/build_projects/dotnet-cli-build/PrepareTargets.cs @@ -115,7 +115,7 @@ namespace Microsoft.DotNet.Cli.Build public static BuildTargetResult ExpectedBuildArtifacts(BuildTargetContext c) { var config = Environment.GetEnvironmentVariable("CONFIGURATION"); - var versionBadgeName = $"{CurrentPlatform.Current}_{CurrentArchitecture.Current}_{config}_version_badge.svg"; + var versionBadgeName = $"{Monikers.GetBadgeMoniker()}_{config}_version_badge.svg"; c.BuildContext["VersionBadge"] = Path.Combine(Dirs.Output, versionBadgeName); var cliVersion = c.BuildContext.Get("BuildVersion").NuGetVersion; @@ -317,7 +317,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult CheckUbuntuDebianPackageBuildDependencies(BuildTargetContext c) { @@ -347,7 +347,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult CheckUbuntuCoreclrAndCoreFxDependencies(BuildTargetContext c) { var errorMessageBuilder = new StringBuilder(); diff --git a/build_projects/dotnet-cli-build/PublishTargets.cs b/build_projects/dotnet-cli-build/PublishTargets.cs index 05f6e03ec..63e931b3e 100644 --- a/build_projects/dotnet-cli-build/PublishTargets.cs +++ b/build_projects/dotnet-cli-build/PublishTargets.cs @@ -94,8 +94,21 @@ namespace Microsoft.DotNet.Cli.Build // Copy the latest installer files CopyBlobs($"{Channel}/Installers/{CliNuGetVersion}/", $"{Channel}/Installers/Latest/"); - // Generate the SDK Version text files - List versionFiles = new List() { "win.x86.version", "win.x64.version", "ubuntu.x64.version", "rhel.x64.version", "osx.x64.version", "debian.x64.version", "centos.x64.version" }; + // Generate the CLI and SDK Version text files + List versionFiles = new List() + { + "win.x86.version", + "win.x64.version", + "ubuntu.x64.version", + "ubuntu.16.04.x64.version", + "rhel.x64.version", + "osx.x64.version", + "debian.x64.version", + "centos.x64.version", + "fedora.23.x64.version", + "opensuse.13.2.x64.version" + }; + string cliVersion = Utils.GetCliVersionFileContent(c); foreach (string version in versionFiles) { @@ -131,15 +144,18 @@ namespace Microsoft.DotNet.Cli.Build { "Windows_x86", false }, { "Windows_x64", false }, { "Ubuntu_x64", false }, + { "Ubuntu_16_04_x64", false }, { "RHEL_x64", false }, { "OSX_x64", false }, { "Debian_x64", false }, - { "CentOS_x64", false } + { "CentOS_x64", false }, + { "Fedora_23_x64", false }, + { "openSUSE_13_2_x64", false } }; List blobs = new List(AzurePublisherTool.ListBlobs($"{Channel}/Binaries/{CliNuGetVersion}/")); - var versionBadgeName = $"{CurrentPlatform.Current}_{CurrentArchitecture.Current}"; + var versionBadgeName = $"{Monikers.GetBadgeMoniker()}"; if (badges.ContainsKey(versionBadgeName) == false) { throw new ArgumentException("A new OS build was added without adding the moniker to the {nameof(badges)} lookup"); @@ -188,7 +204,7 @@ namespace Microsoft.DotNet.Cli.Build [Target( nameof(PublishSdkDebToDebianRepo))] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult PublishDebFilesToDebianRepo(BuildTargetContext c) { return c.Success(); @@ -204,7 +220,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult PublishSdkInstallerFileToAzure(BuildTargetContext c) { var version = CliNuGetVersion; @@ -262,7 +278,7 @@ namespace Microsoft.DotNet.Cli.Build } [Target] - [BuildPlatforms(BuildPlatform.Ubuntu)] + [BuildPlatforms(BuildPlatform.Ubuntu, "14.04")] public static BuildTargetResult PublishSdkDebToDebianRepo(BuildTargetContext c) { var version = CliNuGetVersion; diff --git a/build_projects/dotnet-cli-build/TestTargets.cs b/build_projects/dotnet-cli-build/TestTargets.cs index 726ec4f46..4cbfe8239 100644 --- a/build_projects/dotnet-cli-build/TestTargets.cs +++ b/build_projects/dotnet-cli-build/TestTargets.cs @@ -101,7 +101,7 @@ namespace Microsoft.DotNet.Cli.Build var dotnet = DotNetCli.Stage2; dotnet.Restore( - "--verbosity", "verbose", + "--verbosity", "verbose", "--fallbacksource", Dirs.TestPackages) .WorkingDirectory(Path.Combine(c.BuildContext.BuildDirectory, "TestAssets", "TestProjects")) .Execute() diff --git a/build_projects/dotnet-cli-build/project.json b/build_projects/dotnet-cli-build/project.json index e5aa7b340..6cfd36d04 100644 --- a/build_projects/dotnet-cli-build/project.json +++ b/build_projects/dotnet-cli-build/project.json @@ -34,8 +34,11 @@ "win7-x86": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/build_projects/shared-build-targets-utils/Utils/Crossgen.cs b/build_projects/shared-build-targets-utils/Utils/Crossgen.cs index 0c501794f..0d5468e9f 100644 --- a/build_projects/shared-build-targets-utils/Utils/Crossgen.cs +++ b/build_projects/shared-build-targets-utils/Utils/Crossgen.cs @@ -91,7 +91,7 @@ namespace Microsoft.DotNet.Cli.Build } else if (CurrentPlatform.IsUbuntu) { - rid = "ubuntu.14.04-x64"; + rid = $"ubuntu.{RuntimeEnvironment.OperatingSystemVersion}-x64"; } else if (CurrentPlatform.IsCentOS || CurrentPlatform.IsRHEL) { @@ -106,6 +106,14 @@ namespace Microsoft.DotNet.Cli.Build { rid = "debian.8-x64"; } + else if (CurrentPlatform.IsFedora) + { + rid = $"fedora.{RuntimeEnvironment.OperatingSystemVersion}-x64"; + } + else if (CurrentPlatform.IsOpenSuse) + { + rid = $"opensuse.{RuntimeEnvironment.OperatingSystemVersion}-x64"; + } return rid; } diff --git a/build_projects/shared-build-targets-utils/Utils/Monikers.cs b/build_projects/shared-build-targets-utils/Utils/Monikers.cs index 5f6855e54..d28723643 100644 --- a/build_projects/shared-build-targets-utils/Utils/Monikers.cs +++ b/build_projects/shared-build-targets-utils/Utils/Monikers.cs @@ -1,4 +1,5 @@ using Microsoft.DotNet.Cli.Build.Framework; +using Microsoft.DotNet.InternalAbstractions; using System; using System.Collections.Generic; using System.Linq; @@ -15,9 +16,33 @@ namespace Microsoft.DotNet.Cli.Build public static string GetProductMoniker(BuildTargetContext c, string artifactPrefix, string version) { - string osname = GetOSShortName(); - var arch = CurrentArchitecture.Current.ToString(); - return $"{artifactPrefix}-{osname}-{arch}.{version}"; + string rid = RuntimeEnvironment.GetRuntimeIdentifier(); + + if (rid == "ubuntu.16.04-x64" || rid == "fedora.23-x64" || rid == "opensuse.13.2-x64") + { + return $"{artifactPrefix}-{rid}.{version}"; + } + else + { + string osname = GetOSShortName(); + var arch = CurrentArchitecture.Current.ToString(); + return $"{artifactPrefix}-{osname}-{arch}.{version}"; + } + } + + public static string GetBadgeMoniker() + { + switch (RuntimeEnvironment.GetRuntimeIdentifier()) + { + case "ubuntu.16.04-x64": + return "Ubuntu_16_04_x64"; + case "fedora.23-x64": + return "Fedora_23_x64"; + case "opensuse.13.2-x64": + return "openSUSE_13_2_x64"; + } + + return $"{CurrentPlatform.Current}_{CurrentArchitecture.Current}"; } public static string GetDebianPackageName(BuildTargetContext c) diff --git a/build_projects/update-dependencies/project.json b/build_projects/update-dependencies/project.json index cb7803ed5..7205aa6ac 100644 --- a/build_projects/update-dependencies/project.json +++ b/build_projects/update-dependencies/project.json @@ -31,8 +31,11 @@ "osx.10.10-x64": {}, "osx.10.11-x64": {}, "ubuntu.14.04-x64": {}, + "ubuntu.16.04-x64": {}, "centos.7-x64": {}, "rhel.7.2-x64": {}, - "debian.8-x64": {} + "debian.8-x64": {}, + "fedora.23-x64": {}, + "opensuse.13.2-x64": {} } } diff --git a/netci.groovy b/netci.groovy index bee74eeba..0ff12330a 100644 --- a/netci.groovy +++ b/netci.groovy @@ -9,7 +9,7 @@ def project = GithubProject def branch = GithubBranchName def isPR = true -def platformList = ['Debian8.2:x64:Debug', 'Ubuntu:x64:Release', 'OSX:x64:Release', 'Windows_NT:x64:Release', 'Windows_NT:x86:Debug', 'RHEL7.2:x64:Release', 'CentOS7.1:x64:Debug'] +def platformList = ['Debian8.2:x64:Debug', 'Ubuntu:x64:Release', 'Ubuntu16.04:x64:Debug', 'OSX:x64:Release', 'Windows_NT:x64:Release', 'Windows_NT:x86:Debug', 'RHEL7.2:x64:Release', 'CentOS7.1:x64:Debug', 'Fedora23:x64:Debug', 'openSUSE13.2:x64:Debug'] def static getBuildJobName(def configuration, def os, def architecture) { return configuration.toLowerCase() + '_' + os.toLowerCase() + '_' + architecture.toLowerCase() diff --git a/scripts/docker/fedora.23/Dockerfile b/scripts/docker/fedora.23/Dockerfile new file mode 100644 index 000000000..7bdcde793 --- /dev/null +++ b/scripts/docker/fedora.23/Dockerfile @@ -0,0 +1,52 @@ +# +# Copyright (c) .NET Foundation and contributors. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +# Dockerfile that creates a container suitable to build dotnet-cli +FROM fedora:23 + +# Install the base toolchain we need to build anything (clang, cmake, make and the like) +# this does not include libraries that we need to compile different projects, we'd like +# them in a different layer. +RUN dnf install -y cmake \ + clang \ + lldb-devel \ + make \ + which && \ + dnf clean all + +# Install tools used by the VSO build automation. +RUN dnf install -y git \ + zip \ + tar \ + nodejs \ + npm && \ + findutils && \ + dnf clean all && \ + npm install -g azure-cli && \ + npm cache clean + +# Dependencies of CoreCLR and CoreFX. +RUN dnf install -y libicu-devel \ + libuuid-devel \ + libcurl-devel \ + openssl-devel \ + libunwind-devel \ + lttng-ust-devel && \ + dnf clean all + +# Setup User to match Host User, and give superuser permissions +ARG USER_ID=0 +RUN useradd -m code_executor -u ${USER_ID} -g wheel +RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +# With the User Change, we need to change permissions on these directories +RUN chmod -R a+rwx /usr/local +RUN chmod -R a+rwx /home + +# Set user to the one we just created +USER ${USER_ID} + +# Set working directory +WORKDIR /opt/code \ No newline at end of file diff --git a/scripts/docker/opensuse.13.2/Dockerfile b/scripts/docker/opensuse.13.2/Dockerfile new file mode 100644 index 000000000..83244ea3c --- /dev/null +++ b/scripts/docker/opensuse.13.2/Dockerfile @@ -0,0 +1,51 @@ +# +# Copyright (c) .NET Foundation and contributors. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +FROM opensuse:13.2 + +# Install the base toolchain we need to build anything (clang, cmake, make and the like) +# this does not include libraries that we need to compile different projects, we'd like +# them in a different layer. +RUN zypper -n install binutils \ + cmake \ + which \ + gcc \ + llvm-clang \ + tar \ + ncurses-utils \ + curl \ + git \ + sudo && \ + ln -s /usr/bin/clang++ /usr/bin/clang++-3.5 && \ + zypper clean -a + +# Dependencies of CoreCLR and CoreFX. We need to add an additional repository to get lttng. +RUN zypper addrepo -G http://download.opensuse.org/repositories/devel:/tools:/lttng/openSUSE_13.2/devel:tools:lttng.repo && \ + zypper refresh && \ + zypper -n remove krb5-mini && \ + zypper -n install libunwind \ + libicu \ + lttng-ust \ + libuuid1 \ + libopenssl1_0_0 \ + libcurl4 \ + krb5 && \ + zypper clean -a + +# Setup User to match Host User, and give superuser permissions +ARG USER_ID=0 +RUN useradd -m code_executor -u ${USER_ID} -g wheel +RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +# With the User Change, we need to change permissions on these directories +RUN chmod -R a+rwx /usr/local +RUN chmod -R a+rwx /home +RUN chmod -R 755 /usr/lib/sudo + +# Set user to the one we just created +USER ${USER_ID} + +# Set working directory +WORKDIR /opt/code diff --git a/scripts/docker/ubuntu.16.04/Dockerfile b/scripts/docker/ubuntu.16.04/Dockerfile new file mode 100644 index 000000000..3bea47f9e --- /dev/null +++ b/scripts/docker/ubuntu.16.04/Dockerfile @@ -0,0 +1,63 @@ +# +# Copyright (c) .NET Foundation and contributors. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +FROM ubuntu:16.04 + +# Install the base toolchain we need to build anything (clang, cmake, make and the like) +# this does not include libraries that we need to compile different projects, we'd like +# them in a different layer. +RUN apt-get update && \ + apt-get install -y wget && \ + echo "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main" | tee /etc/apt/sources.list.d/llvm.list && \ + wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | apt-key add - && \ + apt-get update && \ + apt-get install -y cmake \ + make \ + llvm-3.5 \ + clang-3.5 \ + lldb-3.6 \ + lldb-3.6-dev && \ + apt-get clean + +# Install tools used by the VSO build automation. nodejs-legacy is a Debian specific +# package that provides `node' on the path (which azure cli needs). +RUN apt-get install -y git \ + zip \ + curl \ + tar \ + nodejs \ + nodejs-legacy \ + npm && \ + apt-get clean && \ + npm install -g azure-cli && \ + npm cache clean + +# Dependencies for CoreCLR and CoreFX +RUN apt-get install -y gettext \ + libunwind8-dev \ + libkrb5-dev \ + libunwind8 \ + libicu-dev \ + liblttng-ust-dev \ + libcurl4-openssl-dev \ + libssl-dev \ + uuid-dev && \ + apt-get clean + +# Setup User to match Host User, and give superuser permissions +ARG USER_ID=0 +RUN useradd -m code_executor -u ${USER_ID} -g sudo +RUN echo 'code_executor ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +# With the User Change, we need to change permissions on these directories +RUN chmod -R a+rwx /usr/local +RUN chmod -R a+rwx /home +RUN chmod -R 755 /usr/lib/sudo + +# Set user to the one we just created +USER ${USER_ID} + +# Set working directory +WORKDIR /opt/code \ No newline at end of file diff --git a/scripts/dockerrun.sh b/scripts/dockerrun.sh index 5426ea679..807454db9 100755 --- a/scripts/dockerrun.sh +++ b/scripts/dockerrun.sh @@ -56,14 +56,32 @@ if [ -z "$DOCKERFILE" ]; then echo "Defaulting to 'ubuntu' image for Darwin" export DOCKERFILE=scripts/docker/ubuntu elif [ "$(cat /etc/*-release | grep -cim1 ubuntu)" -eq 1 ]; then - echo "Detected current OS as Ubuntu, using 'ubuntu' image" - export DOCKERFILE=scripts/docker/ubuntu + echo "Detected current OS as Ubuntu, determining ubuntu version to use..." + if [ "$(cat /etc/*-release | grep -cim1 16.04)" -eq 1 ]; then + echo "using 'ubuntu.16.04' image" + export DOCKERFILE=scripts/docker/ubuntu.16.04 + else + echo "using 'ubuntu' image" + export DOCKERFILE=scripts/docker/ubuntu + fi elif [ "$(cat /etc/*-release | grep -cim1 centos)" -eq 1 ]; then echo "Detected current OS as CentOS, using 'centos' image" export DOCKERFILE=scripts/docker/centos elif [ "$(cat /etc/*-release | grep -cim1 debian)" -eq 1 ]; then echo "Detected current OS as Debian, using 'debian' image" export DOCKERFILE=scripts/docker/debian + elif [ "$(cat /etc/*-release | grep -cim1 fedora)" -eq 1 ]; then + echo "Detected current OS as Fedora, determining fedora version to use..." + if [ "$(cat /etc/*-release | grep -cim1 23)" -eq 1 ]; then + echo "using 'fedora.23' image" + export DOCKERFILE=scripts/docker/fedora.23 + fi + elif [ "$(cat /etc/*-release | grep -cim1 opensuse)" -eq 1 ]; then + echo "Detected current OS as openSUSE, determining openSUSE version to use..." + if [ "$(cat /etc/*-release | grep -cim1 13.2)" -eq 1 ]; then + echo "using 'openSUSE.13.2' image" + export DOCKERFILE=scripts/docker/opensuse.13.2 + fi else echo "Unknown Linux Distro. Using 'ubuntu' image" export DOCKERFILE=scripts/docker/ubuntu diff --git a/scripts/obtain/dotnet-install.sh b/scripts/obtain/dotnet-install.sh index 2c4942aff..a6f721fdb 100755 --- a/scripts/obtain/dotnet-install.sh +++ b/scripts/obtain/dotnet-install.sh @@ -66,6 +66,11 @@ get_current_os_name() { else # Detect Distro if [ "$(cat /etc/*-release | grep -cim1 ubuntu)" -eq 1 ]; then + if [ "$(cat /etc/*-release | grep -cim1 16.04)" -eq 1 ]; then + echo "ubuntu.16.04" + return 0 + fi + echo "ubuntu" return 0 elif [ "$(cat /etc/*-release | grep -cim1 centos)" -eq 1 ]; then @@ -77,6 +82,16 @@ get_current_os_name() { elif [ "$(cat /etc/*-release | grep -cim1 debian)" -eq 1 ]; then echo "debian" return 0 + elif [ "$(cat /etc/*-release | grep -cim1 fedora)" -eq 1 ]; then + if [ "$(cat /etc/*-release | grep -cim1 23)" -eq 1 ]; then + echo "fedora.23" + return 0 + fi + elif [ "$(cat /etc/*-release | grep -cim1 opensuse)" -eq 1 ]; then + if [ "$(cat /etc/*-release | grep -cim1 13.2)" -eq 1 ]; then + echo "opensuse.13.2" + return 0 + fi fi fi diff --git a/src/Microsoft.DotNet.Cli.Utils/Constants.cs b/src/Microsoft.DotNet.Cli.Utils/Constants.cs index fa4dfb349..93bb49daa 100644 --- a/src/Microsoft.DotNet.Cli.Utils/Constants.cs +++ b/src/Microsoft.DotNet.Cli.Utils/Constants.cs @@ -28,9 +28,6 @@ namespace Microsoft.DotNet.Cli.Utils public static readonly string LibCoreClrFileName = (CurrentPlatform == Platform.Windows ? "coreclr" : "libcoreclr"); public static readonly string LibCoreClrName = LibCoreClrFileName + DynamicLibSuffix; - public static readonly string RuntimeIdentifier = CurrentPlatform == Platform.Windows ? "win7-x64" : - CurrentPlatform == Platform.Darwin ? "osx.10.10-x64" : "ubuntu.14.04-x64"; - public static readonly string StaticLibSuffix = CurrentPlatform == Platform.Windows ? ".lib" : ".a"; public static readonly string ResponseFileSuffix = ".rsp"; diff --git a/test/EndToEnd/EndToEndTest.cs b/test/EndToEnd/EndToEndTest.cs index ec5ba4baf..018f21ea5 100644 --- a/test/EndToEnd/EndToEndTest.cs +++ b/test/EndToEnd/EndToEndTest.cs @@ -231,7 +231,9 @@ namespace Microsoft.DotNet.Tests.EndToEnd { case "centos": case "rhel": - Console.WriteLine("Skipping native compilation tests on CentOS/RHEL - https://github.com/dotnet/cli/issues/453"); + case "fedora": + case "opensuse": + Console.WriteLine("Skipping native compilation tests on OpenSUSE/Fedora/CentOS/RHEL - https://github.com/dotnet/cli/issues/453"); isSupported = false; break; case "debian": diff --git a/test/Microsoft.Extensions.DependencyModel.Tests/DependencyContextTests.cs b/test/Microsoft.Extensions.DependencyModel.Tests/DependencyContextTests.cs index c04d1d6cf..81927204f 100644 --- a/test/Microsoft.Extensions.DependencyModel.Tests/DependencyContextTests.cs +++ b/test/Microsoft.Extensions.DependencyModel.Tests/DependencyContextTests.cs @@ -127,7 +127,10 @@ namespace Microsoft.Extensions.DependencyModel.Tests new RuntimeFallbacks("win8-x64", "win8", "win7-x64", "win7", "win-x64", "win", "any", "base"), new RuntimeFallbacks("win7-x64", "win7", "win-x64", "win", "any", "base"), new RuntimeFallbacks("ubuntu-x64", "ubuntu", "linux-x64", "linux", "unix", "any", "base"), + new RuntimeFallbacks("ubuntu.16.04-x64", "ubuntu", "linux-x64", "linux", "unix", "any", "base"), new RuntimeFallbacks("rhel-x64", "rhel", "linux-x64", "linux", "unix", "any", "base"), + new RuntimeFallbacks("fedora.23-x64", "fedora", "linux-x64", "linux", "unix", "any", "base"), + new RuntimeFallbacks("opensuse.13.2-x64", "opensuse", "linux-x64", "linux", "unix", "any", "base"), new RuntimeFallbacks("osx-x64", "osx", "unix", "any", "base"), }); } diff --git a/test/dotnet-publish.Tests/PublishTests.cs b/test/dotnet-publish.Tests/PublishTests.cs index 01007f2ad..f23bdc6b6 100644 --- a/test/dotnet-publish.Tests/PublishTests.cs +++ b/test/dotnet-publish.Tests/PublishTests.cs @@ -41,7 +41,7 @@ namespace Microsoft.DotNet.Tools.Publish.Tests Rid="ubuntu.14.04-x64", HostExtension="", ExpectedArtifacts=new string[] { "libhostfxr.so", "libcoreclr.so", "libhostpolicy.so" } - }, + }, new { Rid="win7-x64", @@ -51,9 +51,9 @@ namespace Microsoft.DotNet.Tools.Publish.Tests new { Rid="osx.10.11-x64", - HostExtension="", - ExpectedArtifacts=new string[] { "libhostfxr.dylib", "libcoreclr.dylib", "libhostpolicy.dylib" } - } + HostExtension="", + ExpectedArtifacts=new string[] { "libhostfxr.dylib", "libcoreclr.dylib", "libhostpolicy.dylib" } + }, }; public static IEnumerable PublishOptions