diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b5eba40
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/dotnet-2.0.0-12.tar.gz
diff --git a/.rh-dotnet20-dotnet.metadata b/.rh-dotnet20-dotnet.metadata
new file mode 100644
index 0000000..a10ae5f
--- /dev/null
+++ b/.rh-dotnet20-dotnet.metadata
@@ -0,0 +1 @@
+c2f619760c049a76fae8509a6cd379bc1f94eacc SOURCES/dotnet-2.0.0-12.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index 98f42b4..0000000
--- a/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-The master branch has no content
-
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/coreclr-sequential-build.patch b/SOURCES/coreclr-sequential-build.patch
new file mode 100644
index 0000000..fadfc66
--- /dev/null
+++ b/SOURCES/coreclr-sequential-build.patch
@@ -0,0 +1,16 @@
+diff --git a/build.sh b/build.sh
+index 39e96dd..b8a1a44 100755
+--- dotnet/src/coreclr/build.sh
++++ dotnet/src/coreclr/build.sh
+@@ -307,9 +307,9 @@ build_native()
+     # Check that the makefiles were created.
+     pushd "$intermediatesForBuild"
+ 
+-    echo "Executing $buildTool install -j $NumProc"
++    echo "Executing $buildTool install"
+ 
+-    $buildTool install -j $NumProc
++    $buildTool install
+     if [ $? != 0 ]; then
+         echo "Failed to build $message."
+         exit 1
diff --git a/SOURCES/coreclr-werror.patch b/SOURCES/coreclr-werror.patch
new file mode 100644
index 0000000..2e0f38b
--- /dev/null
+++ b/SOURCES/coreclr-werror.patch
@@ -0,0 +1,10 @@
+--- dotnet/targets/coreclr.props	2017-08-02 12:44:09.405096589 -0400
++++ dotnet/targets/coreclr.props	2017-08-02 12:44:44.361013247 -0400
+@@ -4,6 +4,7 @@
+     <ProjectDirectory Condition="'$(PathToRepo)' != ''">$(PathToRepo)</ProjectDirectory>
+     <BuildArguments>$(Platform) $(Configuration) skiptests -PortableBuild=false </BuildArguments>
+     <BuildArguments Condition="$(Platform.Contains('arm'))">$(BuildArguments) skipnuget cross -skiprestore stripSymbols</BuildArguments>
++    <BuildArguments Condition="'$(TargetOS)'!='Windows_NT'">$(BuildArguments) ignorewarnings</BuildArguments>
+     <BuildCommand>$(ProjectDirectory)/build$(ShellExtension) $(BuildArguments)</BuildCommand>
+     <BuildCommand Condition="$(Platform.Contains('arm'))">$(ArmEnvironmentVariables) $(BuildCommand)</BuildCommand>
+     <PackagesOutput>$(ProjectDirectory)/bin/Product/$(TargetOS).$(Platform).$(Configuration)/.nuget/pkg/</PackagesOutput>
diff --git a/SOURCES/roslyn-verbose.patch b/SOURCES/roslyn-verbose.patch
new file mode 100644
index 0000000..7689328
--- /dev/null
+++ b/SOURCES/roslyn-verbose.patch
@@ -0,0 +1,11 @@
+--- dotnet/src/roslyn/Makefile
++++ dotnet/src/roslyn/Makefile
+@@ -10,7 +10,7 @@ DOTNET_VERSION = 1.0.1
+ DOTNET = $(BINARIES_PATH)/dotnet-cli/dotnet
+ TARGET_FX = netcoreapp1.1
+ 
+-MSBUILD_ADDITIONALARGS := /v:m /fl /fileloggerparameters:Verbosity=normal /p:Configuration=$(BUILD_CONFIGURATION)
++MSBUILD_ADDITIONALARGS := /v:diag /fl /fileloggerparameters:Verbosity=normal /p:Configuration=$(BUILD_CONFIGURATION)
+ 
+ ifeq ($(OS_NAME),Linux)
+ 	RUNTIME_ID := $(shell . /etc/os-release && echo $$ID.$$VERSION_ID)-x64
diff --git a/SOURCES/templates-publish-without-manifest.patch b/SOURCES/templates-publish-without-manifest.patch
new file mode 100644
index 0000000..57d38da
--- /dev/null
+++ b/SOURCES/templates-publish-without-manifest.patch
@@ -0,0 +1,59 @@
+Templates should publish without the ASP.NET Core manifest by default
+
+Patch the default ASP.NET Core templates (used by dotnet new) to publish
+without expecting the runtime package store on the target. The package store is
+not part of these public built-from-source builds.
+
+If published applications use the manifest - and expect the runtime store to be
+available - they will publish correctly but fail to run at runtime.
+
+--- dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj	2017-06-09 15:35:23.000000000 -0400
++++ dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/EmptyWeb-CSharp/Company.WebApplication1.csproj	2017-07-19 15:59:25.900632277 -0400
+@@ -3,6 +3,7 @@
+   <PropertyGroup>
+     <TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
+     <TargetFramework Condition="'$(TargetFrameworkOverride)' != ''">TargetFrameworkOverride</TargetFramework>
++    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
+   </PropertyGroup>
+ 
+   <ItemGroup>
+--- dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj	2017-06-09 15:35:23.000000000 -0400
++++ dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/RazorPagesWeb-CSharp/Company.WebApplication1.csproj	2017-07-19 16:07:23.248684922 -0400
+@@ -5,6 +5,7 @@
+     <UserSecretsId Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'">aspnet-Company.WebApplication1-0ce56475-d1db-490f-8af1-a881ea4fcd2d</UserSecretsId>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' != 'True'">0</WebProject_DirectoryAccessLevelKey>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' == 'True'">1</WebProject_DirectoryAccessLevelKey>
++    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
+   </PropertyGroup>
+   <ItemGroup Condition=" '$(IndividualLocalAuth)' == 'True' AND '$(UseLocalDB)' != 'True' ">
+     <None Update="app.db" CopyToOutputDirectory="PreserveNewest" />
+--- dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj	2017-06-09 15:35:23.000000000 -0400
++++ dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-CSharp/Company.WebApplication1.csproj	2017-07-19 16:00:58.613168965 -0400
+@@ -8,6 +8,7 @@
+     <UserSecretsId Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'">aspnet-Company.WebApplication1-53bc9b9d-9d6a-45d4-8429-2a2761773502</UserSecretsId>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' != 'True'">0</WebProject_DirectoryAccessLevelKey>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' == 'True'">1</WebProject_DirectoryAccessLevelKey>
++    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
+   </PropertyGroup>
+ <!--#if (IndividualLocalAuth && UseLocalDB) -->
+ 
+--- dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj	2017-06-09 15:35:23.000000000 -0400
++++ dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/StarterWeb-FSharp/Company.WebApplication1.fsproj	2017-07-19 16:01:12.964097252 -0400
+@@ -4,6 +4,7 @@
+     <TargetFramework Condition="'$(TargetFrameworkOverride)' == ''">netcoreapp2.0</TargetFramework>
+     <TargetFramework Condition="'$(TargetFrameworkOverride)' != ''">TargetFrameworkOverride</TargetFramework>
+     <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
++    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
+   </PropertyGroup>
+ 
+   <ItemGroup>
+--- dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj	2017-06-09 15:35:23.000000000 -0400
++++ dotnet/src/templating/template_feed/Microsoft.DotNet.Web.ProjectTemplates.2.0/content/WebApi-CSharp/Company.WebApplication1.csproj	2017-07-19 16:04:59.211162884 -0400
+@@ -6,6 +6,7 @@
+     <UserSecretsId Condition="'$(IndividualAuth)' == 'True' OR '$(OrganizationalAuth)' == 'True'">aspnet-Company.WebApplication1-53bc9b9d-9d6a-45d4-8429-2a2761773502</UserSecretsId>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' != 'True'">0</WebProject_DirectoryAccessLevelKey>
+     <WebProject_DirectoryAccessLevelKey Condition="'$(OrganizationalAuth)' == 'True' AND '$(OrgReadAccess)' == 'True'">1</WebProject_DirectoryAccessLevelKey>
++    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
+   </PropertyGroup>
+ 
+   <ItemGroup>
diff --git a/SPECS/dotnet.spec b/SPECS/dotnet.spec
new file mode 100644
index 0000000..00ad748
--- /dev/null
+++ b/SPECS/dotnet.spec
@@ -0,0 +1,243 @@
+%{?scl:%scl_package dotnet}
+%{!?scl:%global pkg_name %{name}}
+
+# lldb doesn't like our nice debug information
+%undefine _include_minidebuginfo
+%global _find_debuginfo_dwz_opts %{nil}
+
+%global sdk_version 2.0.0
+%global runtime_version 2.0.0
+
+# Do not provide internal .so as standard libraries
+%global __provides_exclude_from ^(%{_libdir}/dotnet/.*\\.so|%{_libdir}/dotnetcore/sdk/%{sdk_version}/.*\\.so|%{_libdir}/dotnetcore/shared/Microsoft.NETCore.App/%{runtime_version}/.*)$
+
+# Do not generate requires for libraries provided by this own package
+%global __requires_exclude ^(libmscordaccore.so\\(\\)\\(64bit\\)|libmscordaccore.so\\(V1.0\\)\\(64bit\\))$
+
+Name:           %{?scl_prefix}dotnet
+Version:        2.0.0
+Release:        4%{?dist}
+Summary:        .NET Core is a general-purpose cross platform development platform
+Group:          Development/Languages
+License:        ASL 2.0 and MIT
+URL:            https://www.microsoft.com/net/core
+
+Source0:        dotnet-%{sdk_version}-12.tar.gz
+
+Patch0:         coreclr-werror.patch
+Patch1:         coreclr-sequential-build.patch
+Patch2:         roslyn-verbose.patch
+Patch3:         templates-publish-without-manifest.patch
+
+ExclusiveArch:  x86_64
+
+BuildRequires:  %{?scl_prefix}clang
+BuildRequires:  cmake
+BuildRequires:  hostname
+BuildRequires:  krb5-devel
+BuildRequires:  %{?scl_prefix}libcurl-devel
+BuildRequires:  libicu-devel
+BuildRequires:  libuuid-devel
+BuildRequires:  libunwind-devel
+BuildRequires:  %{?scl_prefix}lldb-devel
+BuildRequires:  %{?scl_prefix}llvm
+BuildRequires:  %{?scl_prefix}lttng-ust-devel
+BuildRequires:  openssl-devel
+BuildRequires:  python2
+BuildRequires:  %{?scl_prefix}userspace-rcu-devel
+BuildRequires:  zlib-devel
+
+Requires:       %{?scl_prefix}dotnet-sdk-2.0
+
+%description
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+%package -n %{?scl_prefix}dotnet-host
+
+Summary:        Component that runs .NET Core applications or starts the SDK
+%{?scl:Requires: %scl_runtime}
+
+%description -n %{?scl_prefix}dotnet-host
+The .NET Core host is a small application that finds the right SDK to invoke
+or the right framework to run a .NET Core application.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+%package -n %{?scl_prefix}dotnet-runtime-2.0
+
+Summary:        Runtime for .NET Core applications
+
+Requires:       %{?scl_prefix}dotnet-host
+Requires:       %{?scl_prefix}libcurl%{?_isa}
+Requires:       libicu
+
+%{?scl:Requires: %scl_runtime}
+
+%description -n %{?scl_prefix}dotnet-runtime-2.0
+The .NET Core 2.0 runtime package contains a runtime conforming to
+.NET Standard 2.0, including a set of framework libraries and a
+Just-In-Time compiling Virtual Machine for high performance.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+%package -n %{?scl_prefix}dotnet-sdk-2.0
+
+Summary:        A software development kit for developing .NET Core applications
+Requires:       %{?scl_prefix}dotnet-runtime-2.0
+
+%description -n %{?scl_prefix}dotnet-sdk-2.0
+The .NET Core 2.0 SDK provides a number of command line tools to build
+.NET Core applications. It includes compilers for C\#, VB.NET and F\#.
+
+.NET Core is a fast, lightweight and modular platform for creating
+cross platform applications that work on Linux, Mac and Windows.
+
+It particularly focuses on creating console applications, web
+applications and micro-services.
+
+
+%prep
+%setup -q -n dotnet
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+# Increase build verbosity
+sed -ie "s|flp:Verbosity=normal|flp:Verbosity=diag|" src/coreclr/build.sh
+
+# Change text printed when SDK is not installed
+sed -ie "s|http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409|yum install %{?scl_prefix}dotnet-sdk-2.0|" src/core-setup/src/corehost/common/utils.h
+
+%build
+%{?scl:scl enable %scl - << \EOF}
+set -xe
+
+export CMAKE_PREFIX_PATH="%{_prefix}"
+VERBOSE=1 ./build.sh /clp:v=detailed
+
+%{?scl:EOF}
+
+%install
+install -dm 755 $RPM_BUILD_ROOT/%{_libdir}/%{pkg_name}/
+# for debugging
+find bin/x64/Release/
+tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-linux-x64.tar.gz -C $RPM_BUILD_ROOT/%{_libdir}/%{pkg_name}/
+
+install -dm 755 $RPM_BUILD_ROOT/%{_root_datadir}/bash-completion/completions
+# dynamic completion needs the file to be named the same as the base command
+install src/cli/scripts/register-completions.bash $RPM_BUILD_ROOT/%{_root_datadir}/bash-completion/completions/dotnet
+
+# TODO: this doesn't get picked up/used by zsh
+install -dm 755 $RPM_BUILD_ROOT/%{_root_datadir}/zsh/site-functions
+install src/cli/scripts/register-completions.zsh $RPM_BUILD_ROOT/%{_root_datadir}/zsh/site-functions/%{name}
+
+# for debugging
+find $RPM_BUILD_ROOT/%{_libdir}/%{pkg_name}/
+
+# Upstream license files produced from build are bogus
+# See: https://github.com/dotnet/core-setup/issues/676
+rm $RPM_BUILD_ROOT/%{_libdir}/dotnet/LICENSE.txt
+rm $RPM_BUILD_ROOT/%{_libdir}/dotnet/ThirdPartyNotices.txt
+
+mkdir -p $RPM_BUILD_ROOT/%{_bindir}
+ln -s %{_libdir}/%{pkg_name}/dotnet $RPM_BUILD_ROOT/%{_bindir}/
+
+mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1/
+find -type f -iname 'dotnet*\.1' -exec cp {} $RPM_BUILD_ROOT/%{_mandir}/man1/ \;
+
+%files
+# empty package useful for dependencies
+
+%files -n %{?scl_prefix}dotnet-host
+#%doc LICENSE.txt
+#%doc THIRD-PARTY-NOTICES.txt
+%dir %{_libdir}/%{pkg_name}
+%{_libdir}/%{pkg_name}/dotnet
+%{_libdir}/%{pkg_name}/host
+%{_bindir}/dotnet
+%{_mandir}/man1/dotnet.1*
+
+%files -n %{?scl_prefix}dotnet-runtime-2.0
+#%doc LICENSE.TXT
+#%doc THIRD-PARTY-NOTICES.TXT
+%dir %{_libdir}/%{pkg_name}/shared
+%dir %{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App
+%{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App/%{runtime_version}
+
+%files -n %{?scl_prefix}dotnet-sdk-2.0
+#%doc LICENSE.TXT
+#%doc THIRD-PARTY-NOTICES.TXT
+%dir %{_libdir}/%{pkg_name}/sdk
+%{_libdir}/%{pkg_name}/sdk/%{sdk_version}
+%{_mandir}/man1/dotnet-*.1.*
+# shell completions are currently only picked up from %{_root_datadir}
+%dir %{_root_datadir}/bash-completion
+%dir %{_root_datadir}/bash-completion/completions
+%{_root_datadir}/bash-completion/completions/dotnet
+%dir %{_root_datadir}/zsh
+%dir %{_root_datadir}/zsh/site-functions
+%{_root_datadir}/zsh/site-functions/%{name}
+
+%changelog
+* Sat Aug 12 2017 Omair Majid <omajid@redhat.com> - 2.0.0-4
+- Update to new .NET Core drop
+
+* Thu Aug 10 2017 Omair Majid <omajid@redhat.com> - 2.0.0-4
+- Update to new .NET Core drop
+
+* Thu Aug 10 2017 Omair Majid <omajid@redhat.com> - 2.0.0-3
+- Update to new .NET Core drop
+
+* Fri Aug 04 2017 Omair Majid <omajid@redhat.com> - 2.0.0-2
+- Update to new .NET Core drop
+
+* Wed Aug 02 2017 Omair Majid <omajid@redhat.com> - 2.0.0-1
+- Update to final .NET Core 2.0 release
+
+* Wed Jul 19 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.10
+- Modify templates to not use the ASP.NET runtime store
+
+* Wed Jul 19 2017 Omair Majid <omajid@redhat> - 2.0.0-0.9
+- Use non-scl cmake to build
+
+* Fri Jun 23 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.8
+- Update to newer SDK drop
+- Add requires on libicu
+
+* Tue Jun 20 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.7
+- Move more stuff to prep section
+- Install shell completion
+
+* Wed Jun 14 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.6
+- Do not print first-run message on every dotnet invocation
+
+* Fri Jun 9 2017 Omair Majid <omajid@redhat.com> - 2.0-0.5
+- Update to latest source drop
+
+* Thu Jun 8 2017 Omair Majid <omajid@redhat.com> - 2.0-0.4
+- Minor spec file fixes
+- Do not depend on git
+
+* Wed Jun 7 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.3
+- Update to latest source drop.
+
+* Fri Jun 2 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.2
+- Add a meta-package for simply installing all of .NET Core
+
+* Thu May 25 2017 Omair Majid <omajid@redhat.com> - 2.0.0-0.1
+- Initial package for .NET Core 2.0
+