!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

126 Members
24 Servers

Load older messages


SenderMessageTime
5 Dec 2024
@emma:rory.gayEmma [it/its]I should check tomorrow whether i still have the code for my recursive dotnet workload to nix generator22:55:42
@corngood:corngood.comCorngood

we nerf it in the source-build of avalonia:

      preConfigure = ''
        # closed source (telemetry?) https://github.com/AvaloniaUI/Avalonia/discussions/16878
        dotnet remove packages/Avalonia/Avalonia.csproj package Avalonia.BuildServices
      '';

but that needs work before other packages can use it.

it should just be build-time, in sandbox, but it's still shady

22:55:48
@gggkiller:matrix.orgGGG

I think it's a nice idea on paper but has a lot of issues in practice.

Let's say libc for example (ofc nothing in .NET uses it but anyways), there are like 2 or 5 packages that provide that and maybe not all of them could work.

Or maybe openssl, that has 1.1.x and 3.0 versions, which one does the package want if they only specifcy openssl.so?

I don't think we'll be able to get rid of this anytime soon, just like Rust can't nor any other native lang really

22:55:50
@gggkiller:matrix.orgGGG even in Rust when you're using native libraries you need to set up a LD_PRELOAD_PATH env var to actually get it to work 22:56:13
@gggkiller:matrix.orgGGGI don't think nix and dev shells will ever not be a thing22:56:26
@gggkiller:matrix.orgGGG do you run this with sudo? for me it fails with Error mkdir: util.c:1036 create_empty_dir_as_root: Permission denied 22:58:36
@gggkiller:matrix.orgGGGnevermind, 1 google search solved it, I'm dumb23:01:01
@corngood:corngood.comCorngood was it just the missing suid thing from not using programs.firejail.enable = true;? 23:12:15
@gggkiller:matrix.orgGGGyeah23:12:23
@gggkiller:matrix.orgGGG btw, shouldn't we be catching Microsoft.AspNetCore.App.Runtime.{rid}, Microsoft.NETCore.App.Host.{rid}, Microsoft.NETCore.App.Runtime.{rid} and runtime.{rid}.Microsoft.DotNet.ILCompiler as SDK packages?
it doesn't seem to be happening with alcom
23:41:01
@corngood:corngood.comCorngood it looks like it's targeting 8.0.1 explicitly or something? 23:59:26
6 Dec 2024
@corngood:corngood.comCorngoodweird https://github.com/vrc-get/vrc-get/blob/af1eee8c46e2bf7f0427a2dc5bac7b1bc99e039b/vrc-get-litedb/dotnet/vrc-get-litedb.csproj#L600:00:21
@gggkiller:matrix.orgGGGdoesn't seem to be the case00:01:47
@gggkiller:matrix.orgGGGoh nvm00:02:07
@gggkiller:matrix.orgGGG $(RuntimeFrameworkVersion) and <RuntimeFrameworkVersion>8.0.1</RuntimeFrameworkVersion> 00:02:14
@corngood:corngood.comCorngood

needs something like:

    dotnetFlags = [ "-p:RuntimeFrameworkVersion={dotnetCorePackags.runtime_8_0}" ];
00:02:43
@gggkiller:matrix.orgGGGprobably00:02:49
@gggkiller:matrix.orgGGGI also kinda regret using the maintainer upgrade script00:03:26
@corngood:corngood.comCorngood *

needs something like:

    dotnetFlags = [ "-p:RuntimeFrameworkVersion=${dotnetRuntime.version}" ];
00:03:33
@gggkiller:matrix.orgGGG should've made a quick bash script that runs nix eval --impure --json --expr 'import ./pkgs/by-name/ro/roslyn/deps.nix {fetchNuGet = id: id;}' | jq . > deps.json 00:03:34
@gggkiller:matrix.orgGGG * should've made a quick bash script that runs nix eval --impure --json --expr 'import ./deps.nix {fetchNuGet = id: id;}' | jq . > deps.json 00:03:52
@gggkiller:matrix.orgGGGso many packages have eval errors on master that I'm gonna have to do it manually for a lot of them anyways00:04:10
@6pak:matrix.org6pak
In reply to @lostmsu:matrix.org
Hey guys, I'm trying to see if there's a way to improve experience with C# code that has any kind of native dependencies (hi Avalonia).

Would love you to chime in before I jumped to experimentation: https://github.com/NixOS-NET/Nix.NET/issues/1
one idea I suggested before is making an IL patcher that patches all DllImport/NativeLibrary/dlopen uses and/or injects a DllImportResolver
15:36:55
@6pak:matrix.org6paksimilar to patchelf15:36:59
7 Dec 2024
@gggkiller:matrix.orgGGG the issue with that is NativeLibrary, it uses a dynamic string so we can't just detect what it's doing 21:57:18
@gggkiller:matrix.orgGGGsure, this isn't in C#, but still in .NET, look at this: https://github.com/dotnet/dotnet/blob/083e05a29d2b88f0d42bbca8f0b7ab33f4cfb7ab/src/runtime/src/native/libs/System.Security.Cryptography.Native/opensslshim.c#L67-L15721:57:53
@gggkiller:matrix.orgGGG However, even if it's just DllImport, I think it'd be beneficial to have it. And since we'll be scanning the source code anyways, we could change NativeLibrary calls with static strings and have an option to emit warnings for ones with dynamic ones (for debugging/packaging) 22:08:06
@gggkiller:matrix.orgGGGAfter I'm done with 361450 and 362278 I'll look into it.22:08:38
@gggkiller:matrix.orgGGGAlso, god, I can't wait for CA derivations, having to rebuild thousands of packages because of my changes that shouldn't affect anything in 361450 is becoming a major paint22:19:37
@gggkiller:matrix.orgGGG * Also, I can't wait for CA derivations, having to rebuild thousands of packages because of my changes that shouldn't affect anything in 361450 is becoming a major paint22:27:11

Show newer messages


Back to Room ListRoom Version: 9