mono / mono.posix

POSIX/Unix interface for Mono, .NET and .NET Core. Provides functionality for managed code to access POSIX/Unix features not accessible via the BCL. This repository supersedes the older code in https://github.com/mono/mono
MIT License
42 stars 10 forks source link

FreeBSD #8

Open tsuckow opened 3 years ago

tsuckow commented 3 years ago

Duplicati has been using Mono.Posix.NETStandard as part of their port to .net Core. But there is a significant push to maintain support for FreeBSD.

I'm not very familiar with azure-pipelines but I may try building with github actions where I know I can make a freebsd environment. Is there a nuget of this library yet? Any tips for building a slimmed down version of the nuget with just the freebsd runtime?

grendello commented 3 years ago

@tsuckow Nugets are published to https://www.nuget.org/packages/Mono.Unix and https://www.nuget.org/packages/Mono.Posix If you build on FreeBSD then the native library will be tailored exactly for that target. The managed library, however, must remain as-is. I would love to be able to include *BSD builds in the official nuget, but at this point I have no idea how to make it work with Azure :(

grendello commented 3 years ago

@tsuckow I'm going to take a stab at building {Free,Net,Open}BSD binaries using qemu + sysroots, but it's not going to be in the nearest future.

tsuckow commented 2 years ago

I've been fiddling with seeing if I can use github actions to make a nuget package with just the native part for freebsd. Still needs a lot of work https://github.com/tsuckow/MonoPosixHelper-freebsd/blob/master/.github/workflows/freebsd.yml

I swear I got something kinda working in a freebsd vm in July but life got in the way and now I don't really remember so trying to build it proper as scripts that can be tested reproducibly.

tsuckow commented 2 years ago

Been making progress. Finally figured out that for some reason on freebsd they don't include sys/types.h in sys/extattr.h so CMAKE throws a hissy. But worse than that, this library ripped out glib, but not out of the bsd specific code so that needs to be ported.