!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

123 Members
23 Servers

Load older messages


SenderMessageTime
6 May 2025
@corngood:corngood.comCorngoodI'm just thinking about if we make a general hook for doing this. We might want to warn against using it on already patched things. Like you said it probably wouldn't break anything. Patched runtime would still explicitly load libs from /nix/store.13:57:17
@gggkiller:matrix.orgGGGyeah, looking at the actual effects of it, it'd only add a few unnecessary RPATH and needed entries13:57:53
@gggkiller:matrix.orgGGGbut it wouldn't result in anything more in the nix store nor unnecessary packages being pulled in13:58:07
@gggkiller:matrix.orgGGGif it's a framework-dependent apphost, then the runtime in the nix store should already work, so perhaps we only need to identify self-contained apphosts?13:58:58
@corngood:corngood.comCorngood Other than apphost and singlefilehost, is there anything else we need to worry about? Do they ship AOT things? 13:59:13
@corngood:corngood.comCorngood

self-contained apphosts

This would be singlefilehost I believe. Let me see what one of those looks like after build.

14:00:07
@gggkiller:matrix.orgGGGAOT would indeed be an issue we need to worry about as well, I don't know how the AOT binaries are built, I'd need to check to see if they have ICU among the needed libraries14:00:06
@corngood:corngood.comCorngoodI sort of doubt they would have that magic foobar hash in them.14:00:35
@gggkiller:matrix.orgGGG let me check with patchcil 14:01:01
@gggkiller:matrix.orgGGGit's the only AOT program we have in nixpkgs afaik14:01:09
@corngood:corngood.comCorngoodBut are they statically or dynamically linked against the ssl shim?14:01:09
@gggkiller:matrix.orgGGGit should be static, since it's a self-contained binary14:01:34
@gggkiller:matrix.orgGGGit should only need the external deps, no runtime nor anything else14:01:42
@corngood:corngood.comCorngoodso AOT is always a single file?14:01:55
@gggkiller:matrix.orgGGGit has some auxliary files like the pdb and other native dlls (when nuget libraries use pinvoke), but I haven't seen AOT binaries with dlls14:02:40
@gggkiller:matrix.orgGGG* it has some auxliary files like the pdb and other native libraries (when nuget libraries use pinvoke), but I haven't seen AOT binaries with dlls14:02:46
@gggkiller:matrix.orgGGG

annoyingly, it seems like it doesn't add OpenSSL, ICU nor Kerberos to the needed section:

ggg@sora:~ » patchelf --print-needed /nix/store/q36hdx9n1svnxf8mg7pxjjhfz0arlicv-patchcil-0.2.2/lib/patchcil/patchcil                                                                                                                   1 ↵
libm.so.6
libc.so.6
ld-linux-x86-64.so.2                                                                                                                                                                                                                   /0.1s
ggg@sora:~ » patchelf --print-rpath /nix/store/q36hdx9n1svnxf8mg7pxjjhfz0arlicv-patchcil-0.2.2/lib/patchcil/patchcil 
$ORIGIN:/nix/store/vbrdc5wgzn0w1zdp10xd2favkjn5fk7y-glibc-2.40-66/lib                                                                                                                                                                  /0.1s
14:03:46
@gggkiller:matrix.orgGGG *

annoyingly, it seems like it doesn't add OpenSSL, ICU nor Kerberos to the needed section:

$ patchelf --print-needed /nix/store/q36hdx9n1svnxf8mg7pxjjhfz0arlicv-patchcil-0.2.2/lib/patchcil/patchcil
libm.so.6
libc.so.6
ld-linux-x86-64.so.2
$ patchelf --print-rpath /nix/store/q36hdx9n1svnxf8mg7pxjjhfz0arlicv-patchcil-0.2.2/lib/patchcil/patchcil 
$ORIGIN:/nix/store/vbrdc5wgzn0w1zdp10xd2favkjn5fk7y-glibc-2.40-66/lib
14:04:20
@corngood:corngood.comCorngood In case it helps you can get an AOT build (and various other things) like dotnet-sdk.tests.console.cs.aot.built or similar 14:07:26
@gggkiller:matrix.orgGGGoh nice14:07:41
@corngood:corngood.comCorngoodthere are tests for regular publish, single file, etc14:08:04
7 May 2025
@aerden:matrix.orgAerden joined the room.07:56:11
8 May 2025
@6pak:matrix.org6pak Corngood: shouldn't this set DYLD_LIBRARY_PATH on macos? https://github.com/NixOS/nixpkgs/blob/b8d4a65cb17eb3ddec8f742f424a6d195500f281/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-fixup-hook.sh#L37 14:39:14
9 May 2025
@corngood:corngood.comCorngoodYeah, probably. Thanks for the PR. I think there are some subtle differences from glibc, but there are quite a few places in nixpkgs that use it as your suggesting.01:45:13
14 May 2025
@chipherseeker:matrix.org@chipherseeker:matrix.org joined the room.03:52:58
15 May 2025
@gggkiller:matrix.orgGGG @corngood:corngood.com maybe we'll finally be able to source build feature bands in .NET 10?
https://github.com/dotnet/announcements/issues/359
02:44:03
@corngood:corngood.comCorngoodInteresting, but a little vague. For the upgrades this month, 8 is done, 9 hit https://github.com/dotnet/dotnet/pull/546, and I haven't started 10 yet. I guess when I get to 10 I'll see whats going on...10:57:57
18 May 2025
@whovian9369:matrix.orgWhovian9369 Is there a suggested way to deal with an outdated global.json? Is it just to do something similar to substituteInPlace global.json --replace-fail 4.20.69 ${dotnetCorePackages.sdk_9_0.version}? 22:41:17
@whovian9369:matrix.orgWhovian9369("Outdated" relative to the SDK that I'm using to build, anyway.)22:41:36
@whovian9369:matrix.orgWhovian9369 Oh, maybe I could just change the allowPrerelease key to true? That may be the easiest solution here. 22:47:52

Show newer messages


Back to Room ListRoom Version: 9