!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

122 Members
23 Servers

Load older messages


SenderMessageTime
28 Aug 2025
@whovian9369:matrix.orgWhovian9369 * I went back to that Kuriimu2 project that I was working on, and I can't for the life of me figure out how to get it building so far.
Originally I tried doing it as different packages that got provided via the Flake, but adding the various local dependencies via a projectFile list is just throwing errors on fetch-deps again since it wants NuGet binaries for most of them that don't actually exist yet since this is still just the dependency stage...
(The error given is just error NU1101: Unable to find package Komponent. No packages exist with this id in source(s): nuget, _nix)
08:55:14
@whovian9369:matrix.orgWhovian9369 * I went back to that Kuriimu2 project that I was working on, and I can't for the life of me figure out how to get it building so far.
Originally I tried doing it as different packages that got provided via the Flake, but I instead attempted adding the various local dependencies via a projectFile list is just throwing errors on fetch-deps again since it wants NuGet binaries for most of them that don't actually exist yet since this is still just the dependency stage...
(The error given is just error NU1101: Unable to find package Komponent. No packages exist with this id in source(s): nuget, _nix)
09:01:47
@corngood:corngood.comCorngood
In reply to @whovian9369:matrix.org
I went back to that Kuriimu2 project that I was working on, and I can't for the life of me figure out how to get it building so far.
Originally I tried doing it as different packages that got provided via the Flake, but I instead attempted adding the various local dependencies via a projectFile list is just throwing errors on fetch-deps again since it wants NuGet binaries for most of them that don't actually exist yet since this is still just the dependency stage...
(The error given is just error NU1101: Unable to find package Komponent. No packages exist with this id in source(s): nuget, _nix)
Can you share what you've got?
10:11:10
@corngood:corngood.comCorngoodI was unable to reproduce the dotnet 10 segfault on GHA, so I'm left with only being able to reliably reproduce it on hydra.nixos.org. Does anyone here have any experience getting elevated permissions on hydra? I'm not sure what I need exactly, but it would be helpful to be able to kick off a build without having it merged into master.13:45:27
@whovian9369:matrix.orgWhovian9369Download flake.nix17:56:13
@whovian9369:matrix.orgWhovian9369Download package.nix17:56:14
@whovian9369:matrix.orgWhovian9369Download flake.lock17:56:14
@whovian9369:matrix.orgWhovian9369Did not expect those to send as three different replies, sorry about that.17:56:28
@whovian9369:matrix.orgWhovian9369
{
  projectFile = [
    ## Various dependencies that are required for the main project.
    # "Komponent" appears to be module everything else needs.
    "src/lib/Komponent/Komponent.csproj"
    "src/lib/Komponent.Contract/Komponent.Contract.csproj"
    # "Kaligraphy" requires "Komponent".
    "src/lib/Kaligraphy/Kaligraphy.csproj"
    "src/lib/Kaligraphy.Contract/Kaligraphy.Contract.csproj"
    # "Kanvas" requires "Komponent".
    "src/lib/Kanvas/Kanvas.csproj"
    "src/lib/Kanvas.Contract/Kanvas.Contract.csproj"
    # "Kompression" requires "Komponent".
    "src/lib/Kompression/Kompression.csproj"
    "src/lib/Kompression.Contract/Kompression.Contract.csproj"
    # "Kryptography" requires "Komponent".
    "src/lib/Kryptography/Kryptography.csproj"
    "src/lib/Kryptography.Contract/Kryptography.Contract.csproj"
    # "Konnect" requires "Kaligraphy", "Kanvas", and "Kompression".
    "src/lib/Konnect/Konnect.csproj"
    "src/lib/Konnect.Contract/Konnect.Contract.csproj"

    # # Project itself
    "src/ui/Kuriimu2.ImGui/Kuriimu2.ImGui.csproj"
    # "src/ui/Kuriimu2.Cmd/Kuriimu2.Cmd.csproj"
      # Set to target "netcoreapp3.1"?!
  ];

}

I'd say this is the important section, which as I explained above, doesn't actually fix my fetch-deps woes.

17:58:51
@corngood:corngood.comCorngood I don't think this is causing the problem, but you should only need to put the last project in projectFile. The rest should be built via ProjectReference 22:32:11
@whovian9369:matrix.orgWhovian9369 That's what I had setup, but that still wasn't working during the fetch-deps phase. 22:33:01
@whovian9369:matrix.orgWhovian9369 Due to the same NU1101 issue. 22:34:00
@corngood:corngood.comCorngood This is a very weird project. It has a bunch of internal references using PackageReference. Have you been able to build it directly with the dotnet sdk, or found any build recipes from other distros? 22:38:07
@corngood:corngood.comCorngoodThis got me a bit further I think: https://github.com/corngood/nixpkgs/commit/kuriimu222:46:02
@corngood:corngood.comCorngood

I'm not sure why, but kuriimu2.komponent doesn't seem to build a proper package with a library in it:

result/share/nuget/packages/komponent/2.1.7
result/share/nuget/packages/komponent/2.1.7/_rels
result/share/nuget/packages/komponent/2.1.7/_rels/.rels
result/share/nuget/packages/komponent/2.1.7/kuriimu2icon.png
result/share/nuget/packages/komponent/2.1.7/[Content_Types].xml
result/share/nuget/packages/komponent/2.1.7/package
result/share/nuget/packages/komponent/2.1.7/package/services
result/share/nuget/packages/komponent/2.1.7/package/services/metadata
result/share/nuget/packages/komponent/2.1.7/package/services/metadata/core-properties
result/share/nuget/packages/komponent/2.1.7/package/services/metadata/core-properties/4f5e42aa51f944ccbb2a46b7fd3ba0b0.psmdcp
result/share/nuget/packages/komponent/2.1.7/komponent.nuspec
result/share/nuget/packages/komponent/2.1.7/.nupkg.metadata
23:07:36
@whovian9369:matrix.orgWhovian9369Admittedly no I haven't looked or tried, but there's GitHub Actions that build them ( https://github.com/FanTranslatorsInternational/Kuriimu2/tree/imgui/.github/workflows ) and push them to a seemingly private (behind GH Token? Haven't explored that yet.) NuGet repo, that then gets used during the build of the main app.23:16:07
@whovian9369:matrix.orgWhovian9369Oh very good job with those, thank you for the effort so far!23:17:29
@whovian9369:matrix.orgWhovian9369* Oh very good job with those, thank you for the effort with this!23:17:41
@corngood:corngood.comCorngood

Ah I think I see the problem. In Komponent.nuspec they have:

    <file src="bin\Release\net8.0\*.dll" target="lib\net8.0\"/>

But we build with --runtime, so the dll ends up being in e.g. bin/Release/net8.0/linux-x64, so no libs make it in the package.

There are various ways we could fix that, but I'm not sure what would be best. Probably giving more control over the default flags (e.g. --runtime) would be a good idea.

23:53:47
@corngood:corngood.comCorngoodWe have a test for building and consuming a nupkg, but it doesn't use an explicit nuspec like this23:54:27
29 Aug 2025
@corngood:corngood.comCorngoodIf you want to fix it inside the package, the easiest way might be to make a custom build/install phases that do something similar to their github actions00:04:37
@whovian9369:matrix.orgWhovian9369 Do you have any thoughts on patching it in the Kuriimu2 src itself then, to possibly fix it that way? (Possibly fixing it directly in Komponent.nuspec to something closer to expected?) 00:12:12
@corngood:corngood.comCorngood yeah that's certainly an option. maybe it can even use bin\Release\net8.0\*\*.dll or something? or maybe there's a way to make it use the default packing logic? 00:13:41
@corngood:corngood.comCorngood like if you make a dotnet new classlib and pack it with --runtime it works as expected. the dll is in bin/Release/net8.0/$rid/, but it ends up in lib/net8.0/ in the package. 00:14:41
@whovian9369:matrix.orgWhovian9369
╭─whovian@nixos-wsl /nix/store/9j2s8kna0g37970d3s29blw20c6d5961-source/src/lib
╰─$  rg -NI "file src" | sort | uniq
    <file src="bin\Debug\net8.0\*.dll" target="lib\net8.0\"/>
    <file src="bin\Release\net8.0\*.dll" target="lib\net8.0\"/>
    <file src="..\..\..\kuriimu2icon.png" target="kuriimu2icon.png"/>

It looks like all of the nuspec files seem to use the same path, so if the others worked then Komponent should too?

00:59:38
@whovian9369:matrix.orgWhovian9369 You seemed to signal out Komponent as the odd one out here, so that's a touch surprising to me. 00:59:59
@corngood:corngood.comCorngoodOh it was just the first one that caused a build failure in another package because it was empty 01:00:55
@whovian9369:matrix.orgWhovian9369Ah fair enough01:01:09
@luna-null:matrix.org@luna-null:matrix.org left the room.02:40:25
4 Sep 2025
@whovian9369:matrix.orgWhovian9369 I think that I got Kuriimu2 working, and it was overall surprisingly painless once I figured out PackageReference versus ProjectReference. A friend's warning me against doing it this way though, so I have something theoretically "working" at least, but the next step is seeing if I can make the build any cleaner in the process. 00:25:13

Show newer messages


Back to Room ListRoom Version: 9