From owner-freebsd-mono@freebsd.org Thu Sep 14 06:23:56 2017 Return-Path: Delivered-To: freebsd-mono@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7475CE02BFB for ; Thu, 14 Sep 2017 06:23:56 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E05A666BDF; Thu, 14 Sep 2017 06:23:55 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: by mail-lf0-x230.google.com with SMTP id 80so5756276lfy.4; Wed, 13 Sep 2017 23:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=9LEYVXoKPzlglO1sdYQSMMfcKQkfdYgCWAmHrpda/fI=; b=CnftpgGQT65TB4MHrfbyXQ1DgUg24n4BDtu79kCxjVxO/aK+NRCbv8L9bLIT6JLaQX z2/gbcVDzGDpTUE6lSOkdcgAOjT6KAiqERxG28KpPDiIuWvw0ec9fMMZKcQ9uipQAjLA QZ69dknzt+BtUAFFCeFD4Bj9rtWSHl4MC5vAWk91+LPd52bXJWnvZ+OpAw7zZ7JvNnLU 3VVuCrSTI/4ESSaJkC6DPSwTbMYY797YP1Bubr0kgghhR86RIkP7oJZtEeGmgvKgT5SC 6xlazp/4PypuyeVono0x0a4JpGbqwA0Bl+K6vOfIV92n47e9LTu1g6T5oc3iI/mVnOIb NWOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=9LEYVXoKPzlglO1sdYQSMMfcKQkfdYgCWAmHrpda/fI=; b=HJG6iSXQW/cdr5cbKZQxlIqougFt0xxH++NVQtdzveURwQ5Ei1NBGQ6wfa7u/DDq5a ATHlUpFyBSXV0B4kKyKOWpXBp08axXDedBiAMmlizfMkL0aKXfDdNVARnirLSuu+D4lD 5AZrYiRx0FRpwXSRpZrhQ4Qpk+RZS5hXSbeP4zWLOdqitB1CzNXtV81VnMX24VpU8CfN BvBU0vewLluNI+gF448UEuYoVKOiXTWITnhVqLhJBE+WUP9Yfm3DAVtxuq+8uZEqr2tX JnKjKfCSPZsCSH55eMuJducVbtIbm2HzA0rOfmFyjR03k0Eq/5gjS58wXH8c91Vf8hjV 43qA== X-Gm-Message-State: AHPjjUg96D/SO+cZPc0zfIfH7dSSAINVp/bB17pDXlrP3UUxzARNGoHU 7eJ5KmVV/H1yrhYQ0S2f93Pk5FUrBN9do8WpiIZErA== X-Google-Smtp-Source: AOwi7QDkvwpWUGUNDniwUTwXo7DlLDs3y9wEIu9OOnBAg7GSHm8XFkmevClJ/ld9j2m6JSAZoXeDR6s5atN25Nr63js= X-Received: by 10.25.81.85 with SMTP id f82mr7706699lfb.70.1505370234011; Wed, 13 Sep 2017 23:23:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.46.81.18 with HTTP; Wed, 13 Sep 2017 23:23:53 -0700 (PDT) In-Reply-To: References: <20170910155228.6545490.82502.31658@gmail.com> From: Russell Haley Date: Wed, 13 Sep 2017 23:23:53 -0700 Message-ID: Subject: Re: DotNet Core on FreeBSD To: Marcin Cieslak , Mathieu Prevot Cc: David Naylor , Geoffrey Huntley , Freebsd-mono Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: freebsd-mono@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mono and C# applications on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Sep 2017 06:23:56 -0000 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 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 wr= ote: >> On Sun, Sep 10, 2017 at 9:59 PM, Russell Haley 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 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