public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/dotnet:master commit in: Documentation/, /
@ 2018-01-23  6:42 Mikhail Pukhlikov
  0 siblings, 0 replies; 2+ messages in thread
From: Mikhail Pukhlikov @ 2018-01-23  6:42 UTC (permalink / raw
  To: gentoo-commits

commit:     14aa1087eb5af6f791965a5b8e245d9b7382b3cb
Author:     grbd <garlicbready <AT> googlemail <DOT> com>
AuthorDate: Mon Jan  8 01:02:31 2018 +0000
Commit:     Mikhail Pukhlikov <cynede <AT> gentoo <DOT> org>
CommitDate: Mon Jan  8 01:02:31 2018 +0000
URL:        https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=14aa1087

Added initial docs for dotnet core

 Documentation/DotnetCore-Bin.md | 35 +++++++++++++++++++++++++++++++++++
 readme.md                       |  9 +++++++++
 2 files changed, 44 insertions(+)

diff --git a/Documentation/DotnetCore-Bin.md b/Documentation/DotnetCore-Bin.md
new file mode 100644
index 0000000..bc4a9a5
--- /dev/null
+++ b/Documentation/DotnetCore-Bin.md
@@ -0,0 +1,35 @@
+# DotNet Core
+
+
+## Binary Packages
+
+The quickest and easiet way to install dotnet core for gentoo is to use one of the binary packages.
+
+Runtime:
+
+  * =dotnet/dotnetcore-runtime-bin-2.0.4
+  * =dotnet/dotnetcore-aspnet-bin-2.0.3
+
+SDK:
+
+  * =dotnet/dotnetcore-sdk-bin-2.1.3
+
+The SDK package (2.1.3) already includes the runtime packages (2.0.4) for dotnet core.
+The reason for including both is that the SDK is available under x64 platforms but not currently arm32 platforms (such as the Rpi)
+So for the Rpi or other arm32 platforms you'll need to use just the runtime packages unless the application your running already has the runtime build in.
+
+
+## SDK vs Runtime
+
+The SDK packages allow you to use the dotnet cli tool to compile / build C# Code into Managed Applications.
+The runtime packages allow you to use the dotnet cli tool to run pre-compiled applications.
+
+Normally when you compile a dotnet core application, you have one of two options.
+
+  * Compile it as a platform independent .dll file which doesn't include the runtime
+  * Compile it as a platform specific executable file which does include the runtime - using a runtime identifier
+
+For platform independent .dll files these require the runtime packages on the host to use the dotnet cli tool to run / call the dll to start them as an application.
+
+  * https://stackoverflow.com/questions/43931827/how-to-run-asp-net-core-on-arm-based-custom-linux
+

diff --git a/readme.md b/readme.md
index e1804e0..da54f37 100644
--- a/readme.md
+++ b/readme.md
@@ -27,3 +27,12 @@ Overlay Installation
  - Open requests on https://bugs.gentoo.org with solutions from this overlay
 
 ![logo](http://i.imgur.com/4OmyG5d.jpg)
+
+
+Dotnet Core
+-----------
+
+For using dotnet core see
+
+ - [Dotnet Core Binary packages](Documentation/DotnetCore-Bin.md)
+


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] proj/dotnet:master commit in: Documentation/, /
@ 2018-01-23  6:42 Mikhail Pukhlikov
  0 siblings, 0 replies; 2+ messages in thread
From: Mikhail Pukhlikov @ 2018-01-23  6:42 UTC (permalink / raw
  To: gentoo-commits

commit:     8b51ac61a6604a63467055837d625ca776f51d9c
Author:     grbd <garlicbready <AT> googlemail <DOT> com>
AuthorDate: Mon Jan  8 20:09:52 2018 +0000
Commit:     Mikhail Pukhlikov <cynede <AT> gentoo <DOT> org>
CommitDate: Mon Jan  8 20:09:52 2018 +0000
URL:        https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=8b51ac61

Updated Source build docs

 Documentation/DotnetCore-Bin.md |   2 +-
 Documentation/DotnetCore-Src.md | 120 ++++++++++++++++++++++++++++++++++++++++
 readme.md                       |   1 +
 3 files changed, 122 insertions(+), 1 deletion(-)

diff --git a/Documentation/DotnetCore-Bin.md b/Documentation/DotnetCore-Bin.md
index d6b95ba..5176851 100644
--- a/Documentation/DotnetCore-Bin.md
+++ b/Documentation/DotnetCore-Bin.md
@@ -1,4 +1,4 @@
-# DotNet Core
+# DotNet Core Binary Builds
 
 
 ## Binary Packages

diff --git a/Documentation/DotnetCore-Src.md b/Documentation/DotnetCore-Src.md
new file mode 100644
index 0000000..096fb60
--- /dev/null
+++ b/Documentation/DotnetCore-Src.md
@@ -0,0 +1,120 @@
+# DotNet Core Source Builds
+
+I've experimented with building .net core from source and put some notes together below for trying to build under gentoo.
+Hopefully these might be useful for a future source based ebuild.
+
+make sure to use llvm/clang 4.0.1 not 5.0.1 which causes issues with the latest stable 2.0 release.
+Although I think this has been fixed within master
+
+## Dotnet core sandbox issues
+
+One of the issues currently with dotnet core is that applications seem to fail when run from within the sandbox.
+This includes dotnet restore or build
+
+  * https://github.com/dotnet/cli/issues/8305
+  * https://wiki.gentoo.org/wiki/Knowledge_Base:Overriding_environment_variables_per_package
+
+To exclude a particular package from the sandbox we can use the following
+
+First we use this to create a setting called nosandbox
+```
+mkdir -p /etc/portage/env
+echo 'FEATURES="-sandbox -usersandbox"' >> /etc/portage/env/nosandbox
+```
+
+Next we apply this to any ebuilds that need it
+```
+echo 'dev-dotnet/dotnetcore-runtime nosandbox' >> /etc/portage/package.env
+```
+
+I should probably mention that as of writing the current source build of dotnetcore-runtime
+doesn't use the dotnet restore command so it currently doesn't need this. But future versions may.
+
+
+## CoreSetup
+
+Coresetup seems to be a set of scripts used to generate the runtime tar.gz
+However I don't think these can be used currently to generate the sdk.
+
+I'm not sure core-setup actually builds source or just partially builds source and partially copies pre-compiled libraries in
+
+To clone the source
+```
+git clone https://github.com/dotnet/core-setup.git
+cd core-setup/
+git checkout v2.0.4
+```
+
+To trigger the build
+```
+./init-tools.sh
+./build.sh -ConfigurationGroup=Release -SkipTests
+```
+
+The place to look for .tar.gz files is
+
+  * Bin/gentoo-x64.Release/packages
+  * Bin/linux-x64.Release/packages
+
+From the looks of things the tarball gz is generated by the below target
+```
+./Tools/msbuild.sh src/pkg/packaging/dir.proj /p:UsePrebuiltPortableBinariesForInstallers=true /flp:v=diag /p:TargetArchitecture=x64 /p:PortableBuild=false /p:ConfigurationGroup=Release /p:OSGroup=Linux /p:SharedFrameworkPublishDir=/root/test1/core-setup/Bin/obj/linux-x64.Release/sharedFrameworkPublish/ /target:GenerateTarBall
+```
+
+It's also worth checking out the commands under **buildpipeline/Core-Setup-Linux-BT.json** to see what's being run inside there
+
+
+## Source Build
+
+Source build seems to be a set of scripts that sits on top of everything else including CoreSetup
+But I've not managed to get it to work fully yet.
+
+```
+git clone https://github.com/dotnet/source-build.git
+cd source-build
+git checkout dev/release/2.0
+git submodule update --init --recursive
+```
+
+I've found you may need to edit **tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks/GetHostInformation.cs**
+So that it always returns true and sets the OS to Linux
+
+To experiment building some stuff
+```
+./build.sh /p:RootRepo=coreclr
+./build.sh /p:RootRepo=sdk
+```
+
+
+## Building CoreCLR / CoreFX directly
+
+If you want to try compiling the CoreCLR / CoreFX repo's directly
+
+In order to build the libraries a version of the dotnet cli / sdk is needed as part of a boostrap process
+These typically end up un Tools/
+usually build.sh will call these scripts at the beginning
+```
+./init_tools
+./sync.sh
+```
+
+I've found that RuntimeOS needs to be specified for corefx to work right
+
+coreclr:
+```
+./clean.sh -all
+./build.sh -release -buildArch=x64 -SkipTests
+```
+
+corefx:
+```
+./clean.sh -all
+./build.sh -release -buildArch=x64 -SkipTests -RuntimeOS=rhel.7
+```
+
+I've found that for some reason the build defaults to strict mode which treats warnings as errors
+If this happens then one way around it is to add the following to the .csproj file
+```
+<NoWarn>CS8073</NoWarn>
+```
+

diff --git a/readme.md b/readme.md
index da54f37..1604ed3 100644
--- a/readme.md
+++ b/readme.md
@@ -35,4 +35,5 @@ Dotnet Core
 For using dotnet core see
 
  - [Dotnet Core Binary packages](Documentation/DotnetCore-Bin.md)
+ - [Dotnet Core Source Build Notes](Documentation/DotnetCore-Src.md)
 


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-01-23  6:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-23  6:42 [gentoo-commits] proj/dotnet:master commit in: Documentation/, / Mikhail Pukhlikov
  -- strict thread matches above, loose matches on Subject: below --
2018-01-23  6:42 Mikhail Pukhlikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox