Comments (19)
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.
AFAIU, the former is a repository used to build .deb/.rpms. They need to contain the original sources.
from fsharp.
Hmm, Mono has deprecated xbuild as of Mono 5, so the package being pointed to in the docs seems incorrect
from fsharp.
@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.
@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.
@ninjarobot that one https://github.com/gentoo/gentoo/blob/master/dev-lang/mono/mono-5.18.0.225.ebuild
from fsharp.
@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.
@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.
@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.
@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.
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.
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.
@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.
@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.
@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.
some binary blobs are okay, alike nvidia-drivers for example but if source based version is available it's preferred.
from fsharp.
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
from fsharp.
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.
@FSSF please update documentation on wiki
from fsharp.
Related Issues (20)
- Compiler and interactive session crash instantly. HOT 2
- StackOverflow calling very large generated function HOT 3
- .Net Core FSI causes security exception when attempting to executing a PInvoke call HOT 11
- Does F# type inference works top-down (and left-right) only? HOT 2
- Why is Map.filter 10x slower than using a query to select the keys and remove those individually? HOT 2
- FSI evaluates expressions incorrectly HOT 1
- Result builder throwing null reference exception HOT 5
- Fail to parse(?) decimals with FSharpValue.MakeRecord ONLY in iOS device with Region Spanish/Colombia HOT 8
- fsharpi error on matching union type HOT 1
- Missing code for version 4.5.4 and 4.6.0+ HOT 3
- Publish F# 4.6 FSharp.Compiler.Tools package HOT 16
- fsharpi crash when applying attribute to type parameter HOT 2
- IEvent.Publish "forgets" that it's an IObservable when used with an anonymous record argument HOT 2
- Publish F-Sharp 4.6 on Github HOT 4
- F#: [<StructuredFormatDisplay>] in composed records just print dots. (...) HOT 2
- is there any uwp or wpf template for f# in visual studio? HOT 1
- can't run fsi HOT 4
- The property of `Struct Record` should add [<IsReadOnly>] for the read operation HOT 2
- This repo can be retired HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fsharp.