Git Product home page Git Product logo

Comments (19)

ArsenShnurkov avatar ArsenShnurkov commented on September 26, 2024 1

msbuild works for simple projects, but not for all, because many projects require Microsoft.NET.Sdk, which is not packaged. In this issue, the error message text is different. So, it's not the msbuild ebuild problem yet.

"Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly"

probably fsharp's version of FSharp.Build.dll is not built against the version of msbuild in gentoo.

how those rules play out for Gentoo.

gentoo should build everything from source, no binary bits are welcomed

One possible solution is to build FSharp.Build.dll according to gentoo guidelines.

from fsharp.

knocte avatar knocte commented on September 26, 2024 1

AFAIU, the former is a repository used to build .deb/.rpms. They need to contain the original sources.

from fsharp.

cartermp avatar cartermp commented on September 26, 2024

Hmm, Mono has deprecated xbuild as of Mono 5, so the package being pointed to in the docs seems incorrect

from fsharp.

cnd avatar cnd commented on September 26, 2024

@cartermp I didn't know about that... if I install just mono there is no msbuild executable (but still xbuild?), I'm not sure, I will check that on next week...

from fsharp.

ninjarobot avatar ninjarobot commented on September 26, 2024

@cnd I'm not sure about Gentoo, but the Debian and Ubuntu packaging installs the msbuild package these days, so if users install mono-complete or mono-devel, they will end up with msbuild installed. Which mono package did you use to install mono?

from fsharp.

cnd avatar cnd commented on September 26, 2024

@ninjarobot that one https://github.com/gentoo/gentoo/blob/master/dev-lang/mono/mono-5.18.0.225.ebuild

from fsharp.

cnd avatar cnd commented on September 26, 2024

@cartermp @ninjarobot I've re-checked, my mono package has xbuild executable but no msbuild
There is whole files list for mono package: https://paste.pound-python.org/show/5fznysuy2GXOO9VVzqho
It's Mono JIT compiler version 5.18.0.225 (tarball Wed Jan 9 19:01:02 +04 2019)

from fsharp.

knocte avatar knocte commented on September 26, 2024

@cnd what @ninjarobot told you is to install mono-complete or mono-devel not mono alone. mono cannot contain msbuild, but the other metapackages may include it.

from fsharp.

cnd avatar cnd commented on September 26, 2024

@knocte but I have no idea what is mono-complete or mono-devel I do package mono project which I get from here: https://download.mono-project.com/sources/mono
Please rewrite your instructions in case if you plan only support Ubuntu or Debian
(currently I can't find any information about getting mono with msbuild from sources)

from fsharp.

ninjarobot avatar ninjarobot commented on September 26, 2024

@cnd there isn't any intention to dissuade you from using your favorite distro, just that building the F# compiler on Linux depends on the mono distribution and the maintainers publish official packages for Debian and derivatives. I expect Gentoo will work as well, but building the compiler depends on msbuild these days.

I was able to find an overlay for msbuild, albeit for some older mono versions. It would probably be best to get to this msbuild:

Microsoft (R) Build Engine version 15.6.0.0 (xplat-master/ca830585 Sun Mar 25 19:24:09 EDT 2018)

I personally don't have Gentoo packaging experience, but are you able to make adjustments such that the additional package for msbuild can be added to the Gentoo overlays? Hopefully @knocte or others on the mono side can help work through any issues getting through any errors with the build of msbuild itself, feel free to post them here.

from fsharp.

cnd avatar cnd commented on September 26, 2024

yes, ebuild (package) for msbuild contributed to overlay by user @ArsenShnurkov and it's not fully supported
it's currently using commit from https://github.com/mono/linux-packaging-msbuild and not some tag version (honestly it could be great if there will be distribution-neutral versions on that repository)
so far it looks like separated project and I'm not sure if we (gentoo) should package it with mono as some option (USE flag)
instructions on https://github.com/fsharp/fsfoundation/pull/757/files where telling

Get Mono, the cross-platform, open source .NET runtime implementation used by F#. Preferably use a package from your distribution or Xamarin. If this is not possible, [install from source by following these instructions](https://github.com/mono/mono).

and it will not work anymore (outside supported distributions) that's why I state on removing or reworking misleading steps for building.
I was trying to use that msbuild ebuild and faced the error in my first post here.

from fsharp.

knocte avatar knocte commented on September 26, 2024

it's currently using commit from https://github.com/mono/linux-packaging-msbuild

That's the repo for packaging, it's not upstream.

it could be great if there will be distribution-neutral versions on that repository

Maybe it's this? https://github.com/mono/msbuild but note, might not be master branch

from fsharp.

cnd avatar cnd commented on September 26, 2024

@knocte I see, I'm not sure why packaging repository was taken. Do you know what tag of which repository and with which flag we should build for f sharp? (I can't find 15.6.0.0 tag there)
It could be really useful if anyone is able to provide step by step instructions.
Microsoft picks very specific way of working with OSS dotnet/source-build#782
I'm okay if they will be able to manage everything by themselves but without any instructions it's absolute mess for me, I try building random commits, I get build errors I can't understand, I rant, I'm tired.

from fsharp.

ninjarobot avatar ninjarobot commented on September 26, 2024

@directhex are you able to provide any guidance for packaging for msbuild on Gentoo? More and more projects are going to expect msbuild since it supports the new SDK format. @cnd bumped mono to 5.18 here and various community members have been maintaining the overlays. With some guidance, I expect the community would keep up msbuild overlays as well.

from fsharp.

directhex avatar directhex commented on September 26, 2024

@ninjarobot https://github.com/mono/linux-packaging-msbuild/blob/master/debian/rules#L11-L19 + http://download.mono-project.com/sources/msbuild/

MSBuild isn't in a state where those tarballs are "Debian grade" (they contain binary pieces, and touch the Internet, which are both forbidden), but I don't know how those rules play out for Gentoo.

from fsharp.

cnd avatar cnd commented on September 26, 2024

some binary blobs are okay, alike nvidia-drivers for example but if source based version is available it's preferred.

from fsharp.

ArsenShnurkov avatar ArsenShnurkov commented on September 26, 2024

@cnd

I'm not sure why packaging repository was taken.

What is the difference between microsoft/msbuild and mono/linux-packaging-msbuild ?
the second contains the same content as the first plus some additional content, in particular the content of Sdks:

meld ~/msbuild/linux-packaging-msbuild ~/msbuild/Microsoft

image

from fsharp.

dsyme avatar dsyme commented on September 26, 2024

I've checked and this repo builds clean with Mono 5.18.1.3 (in a Debian 9 docker container)

Note this repo is not by default "build from source" - it uses various binary packages as part of the build process. For a "build from source" option please use the .NET SDK build from source (including F#) and the "src/buildfromsource.sh" in the repository.

from fsharp.

cnd avatar cnd commented on September 26, 2024

@FSSF please update documentation on wiki

from fsharp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.