Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Sep 2017 23:23:53 -0700
From:      Russell Haley <russ.haley@gmail.com>
To:        Marcin Cieslak <saper@saper.info>, Mathieu Prevot <mprevot@freebsd.org>
Cc:        David Naylor <naylor.b.david@gmail.com>, Geoffrey Huntley <ghuntley@ghuntley.com>,  Freebsd-mono <freebsd-mono@freebsd.org>
Subject:   Re: DotNet Core on FreeBSD
Message-ID:  <CABx9NuTAxUB6E-6XdtP8d6ZAVsV7eGg-=9JrjWAexTRTfvz2Kg@mail.gmail.com>
In-Reply-To: <CABx9NuR59a_11QfpNRt1GkFKy-KFm1WmMi1a8Bqs1LygdP6Ypw@mail.gmail.com>
References:  <CABx9NuQVGCnn32pNz2Opbnua8wwuuYjTDJyq3qO0iF%2BkiGfVBg@mail.gmail.com> <nycvar.OFS.7.76.6.1709100805500.3008@z.fncre.vasb> <20170910155228.6545490.82502.31658@gmail.com> <CABx9NuTxcgDfe8oApu%2BsChN3wGfYHC_RNBeakxoh=7sK6_1O=g@mail.gmail.com> <CABx9NuTpxj8g2s1OtNUrg_8g-c3CS9Lph2DcMJarmxi%2Bbzf51g@mail.gmail.com> <CABx9NuR59a_11QfpNRt1GkFKy-KFm1WmMi1a8Bqs1LygdP6Ypw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hey Guys,

So I had a good chat on the phone today with Karel Zikmund and Tomas
Weinfurt from Microsoft. Karel and Tomas work together on the DotNet
Core Team. Tomas was looking for a way to get in deep with the
framework and has past FreeBSD experience, so offered to look into
porting Core 2.0 over to FreeBSD on his own time. Karel has supported
Tomas by advocating for giving him work time to devote to the porting
process.[1]

Microsoft and the DotNet Core Team have agreed to restart the FreeBSD
porting process and are looking to engage the FreeBSD community
because there is quite a bit of work to be done. There are many moving
parts to building and running DotNet, each with it's own challenge in
the porting process. Just between the three people in the phone call
there were numerous paths identified for others to engage. Because of
the width of the problem, Karel and Tomas have put together the
following outline of the outstanding work:

  1.  Produce binaries in CoreCLR & CoreFX repo targeting FreeBSD =E2=80=93
using hacks is fine
     *   Hard to parallelize, Tomas will work on that
     *   The build can be mix of builds from other platforms (Mac,
Linux) targeting FreeBSD
     *   We will need steps to reproduce the build with
FreeBSD-specific bug fixes
  2.  Run & stabilize CoreCLR tests (using corerun)
     *   Tests may be built on another platform
     *   Goal: Provides basic quality of runtime
  3.  Run & stabilize CoreFX tests (using corerun)
     *   Tests may be built on another platform
     *   Note this requires xunit. We believe, based on our past
porting experience, once #2 is done, xunit will just work.
     *   This can be in theory parallelized with #2 =E2=80=93 it may requir=
e
shortcutting xunit (e.g. generate static execution recipe on another
platform)
  4.  Full stack build on FreeBSD (using corerun as bootstrapper from #1-#3=
)
     *   We will need all tools (nuget, msbuild, roslyn) to work on
boostrapping .NET Core
  5.  Installers (FreeBSD ports)
     *   First-stage: Using product binaries from nuget feeds
     *   Second-stage: Build product from source (blocked on build
from source effort)
     *   Requires FreeBSD community expertise and guidance on design
     *   Note: We can link FreeBSD packages also from official .NET
Core download pages as community-support packages
  6.  Regular build and test runs on FreeBSD
     *   Goal: Make sure changes in .NET Core repos breaking FreeBSD
are known early
     *   Design needed
     *   Requires FreeBSD community expertise and guidance on design

This list is just a general overview of what's needs to happen. There
is still some incomplete critical path work, but that seems to be
pretty well in hand by Tomas. I asked them to give us whatever they
had and let the people pour over it, so Tomas has agreed to put
together a document.

The next big step in getting traction is for the community to identify
people who would like to participate in the porting process, and
finding ways to engage. Obviously, you're free to do what you want,
but Karel and Tomas are hoping to direct the work towards specific
goals and try to drive the porting process as fast as possible. I
suggested that teams like the KDE team, or past mono teams seem to
have worked liked that.

If you'd like to participate/join the fun, please set up a GitHub
account and send a 'me too' email with the username or email address.
I'll send an invite for the FreeBSD-DotNet to that account. I'm not so
sure anymore about using GitHub for FreeBSD stuff, but it's a good
place to congregate.

Either way, I'm hoping to get a handle on the whole thing again and
try and be productive myself. I'm hoping to talk to David about
spring-boarding off of his Mono 5 work and start a new dotnet-core
port. There are also opportunities to use Mono to kickstart the build
process to get people working with the system.

Thanks guys, I look forward to hearing from you (I hope!). If not,
I'll be keeping people up to date on this mailing list.

Cheers,
Russ

[1] My paraphrasing of the situation. I could be totally off base.

On Sun, Sep 10, 2017 at 10:09 PM, Russell Haley <russ.haley@gmail.com> wrot=
e:
> Does anyone here run Unity? Unity is a very popular gaming engine that
> is cross platform and provides a C# API.
>
> https://en.wikipedia.org/wiki/Unity_(game_engine)
>
> https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/
>
> Kaboom! (Head exploded again. This is getting messy)
>
> Russ
>
> On Sun, Sep 10, 2017 at 10:03 PM, Russell Haley <russ.haley@gmail.com> wr=
ote:
>> On Sun, Sep 10, 2017 at 9:59 PM, Russell Haley <russ.haley@gmail.com> wr=
ote:
>>> Hey Marcin,
>>>
>>> So I just read the Contribution License Agreement and I didn't see
>>> anything untoward.
>>>
>>> https://cla2.dotnetfoundation.org/cladoc/net-foundation-contribution-li=
cense-agreement.pdf
>>>
>>> Just remember all these projects are MIT, Apache 2 or CC license. I
>>> think bringing this code into FreeBSD is a bonkers good idea. (Kaboom!
>>> lolz). Especially if you think about how much proprietary code is out
>>> there on Windows that people will want to protect. A FreeNAS style
>>> management console would make FreeBSD a particularly attractive offer
>>> over GPL licensed OSes for companies to create appliance style systems
>>> (physical or virtual, a-la FreeNAS). Jails become yet another great
>>> way to distribute proprietary code.
>>>
>>> Sony PS 3&4, NetApp and now Nintendo Switch are all great examples of
>>> what you can do with FreeBSD in a proprietary system.
>>>
>>> Dot Net Core also opens up Arm based systems on FreeBSD in some ways
>>> because it's specifically designed do be modular. I don't think Mono
>>> has built on Arm for a long time and the performance of Mono has been
>>> a problem of note.
>>>
>>> Russ
>>
>> I'm trying to perform due diligence because I want to throw some time
>> into this. Avoiding GPL and other encumbering licenses is important to
>> me. I had to know myself so I made this list of licenses:
>>
>> https://github.com/dotnet/csharplang - Microsoft
>> https://github.com/dotnet/cli -
>> https://www.microsoft.com/net/dotnet_library_license.htm
>>
>> https://github.com/dotnet/source-build - MIT
>> https://github.com/dotnet/core-setup - MIT
>> https://github.com/dotnet/corefx - MIT
>> https://github.com/dotnet/coreclr - MIT
>> https://github.com/dotnet/sdk - MIT
>> https://github.com/dotnet/dotnet-docker - MIT
>> https://github.com/dotnet/standard - MIT
>> https://github.com/dotnet/sdk - MIT
>> https://github.com/dotnet/netcorecli-fsc - MIT
>>
>> https://github.com/nuget/home - A2
>> https://github.com/aspnet/home - A2
>> https://github.com/dotnet/roslyn - A2
>>
>> https://github.com/aspnet/Docs - CC
>> https://github.com/dotnet/docs - CC
>>
>> Russ
>>
>>> On Sun, Sep 10, 2017 at 8:52 AM, Russell Haley <russ.haley@gmail.com> w=
rote:
>>>> Sorry for the top post,
>>>>
>>>> Marcin, can you expand on your thoughts about the contributor license?=
 This has been one of the concerns of mine=E2=80=8E (part of the pedanticis=
m). I didn't get a chance to read the doc itself yet.
>>>>
>>>> Russ
>>>>
>>>> Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.
>>>>   Original Message
>>>> From: Marcin Cieslak
>>>> Sent: Sunday, September 10, 2017 1:13 AM
>>>> To: Russell Haley
>>>> Cc: David Naylor; Geoffrey Huntley; Freebsd-mono; freebsd-advocacy@fre=
ebsd.org; freebsd-ports@freebsd.org
>>>> Subject: Re: DotNet Core on FreeBSD
>>>>
>>>> On Sun, 10 Sep 2017, Russell Haley wrote:
>>>>
>>>>> Hey guys,
>>>>>
>>>>> I am talking to Karel and Tomas at Microsoft's DotNet Core Team about
>>>>> putting together a "proposal" for community involvement, which will b=
e
>>>>> followed by more information on this list. Most of the talk has been
>>>>> me blowing air and being pedantic about nothing (I get excited and
>>>>> type alot).
>>>>
>>>> I was tinkering around FreeBSD support when dotnet core was first publ=
ished.
>>>> Stack unwinding for exceptions was very hacky at the time, and there w=
ere
>>>> some unnecessary discussions about how to implement some FreeBSD sepec=
ific
>>>> sysctl's. I got a bit frustrated with that (a whole porting effort is =
about
>>>> coercing Unix to offer part of Win32 APIs).
>>>>
>>>> It was somewhat running on FreeBSD natively back then, haven't checked
>>>> recently.
>>>>
>>>> I have also decided not to sign their bad contributor agreement
>>>> and some of the sysctl code I decided to put in mono instead :)
>>>>
>>>> Marcin
>>>> saper on github



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABx9NuTAxUB6E-6XdtP8d6ZAVsV7eGg-=9JrjWAexTRTfvz2Kg>