!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

125 Members
24 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
28 Sep 2023
@magikarpz:matrix.orgmdarochaare you able to share the source code to this app? and the nix code?14:07:11
@Joelixny:matrix.orgRuri
In reply to @magikarpz:matrix.org
are you able to share the source code to this app? and the nix code?

Here's the source code of the application: https://github.com/Assistant/Hive
The nix code currently lives only in my nixos config with this file being called by callPackage,

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:
buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "Hive.sln";
  nugetDeps = ./deps.nix;
  selfContainedBuild = true;
  # dotnetInstallFlags = ["--framework" "net6.0"];

  # dotnet-sdk = dotnetCorePackages.sdk_6_0;
  # dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  nativeCheckInputs = [mono dotnet-sdk];
  # buildInputs = [openssh];
  # testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
14:18:46
@magikarpz:matrix.orgmdarochawhy did you add dotnet-sdk to inputs? it should be already handled by buildDotnetModule14:26:08
@Joelixny:matrix.orgRuriI don't have a good answer other than seeing it somewhere and trying things to see what would work, let me give it a try without it14:28:38
@magikarpz:matrix.orgmdarocha overall the source seems a bit misconfigured 14:29:56
@magikarpz:matrix.orgmdarochait may require a bit of tweaking to make it work properly14:30:05
@Joelixny:matrix.orgRuriThe application source, I assume?14:30:26
@magikarpz:matrix.orgmdarochayup14:31:13
@magikarpz:matrix.orgmdarocha i’ll let you know if i figure something out 14:31:24
@Joelixny:matrix.orgRuriThank you o714:32:26
30 Sep 2023
@magikarpz:matrix.orgmdarocha

Ruri: managed to make it compile with the following code:

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:

buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "src/Hive/Hive.csproj";
  nugetDeps = ./deps.nix;

  dotnet-sdk = dotnetCorePackages.sdk_6_0;
  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  dotnetInstallFlags = [ "--framework" "net6.0" ];
  #testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
11:19:23
@magikarpz:matrix.orgmdarocha make sure you have update your nixpkgs reference, I'm using the current master branch (7b22218f11c9b8c3cc4b3baa97969201238d6783) and didn't encounter the problems you mentioned, think it got fixed in some PR some time ago 11:20:20
@magikarpz:matrix.orgmdarocha also rerun fetch-deps 11:20:24
@Joelixny:matrix.orgRuri
In reply to @magikarpz:matrix.org

Ruri: managed to make it compile with the following code:

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:

buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "src/Hive/Hive.csproj";
  nugetDeps = ./deps.nix;

  dotnet-sdk = dotnetCorePackages.sdk_6_0;
  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  dotnetInstallFlags = [ "--framework" "net6.0" ];
  #testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
Thanks! that nix code successfully builds even without updating my flake lockfile, setting the sdk and runtime and using the .csproj file instead of the solution seems to do the trick
14:31:22
16 Oct 2023
@emma:conduit.rory.gayEmma [it/its] ⚡️ joined the room.02:17:41
@emma:conduit.rory.gayEmma [it/its] ⚡️
{ pkgs ? import <nixpkgs> {} }:

pkgs.symlinkJoin {
  name = "dotnet-pack";
  paths = [ pkgs.dotnet-sdk_8 pkgs.dotnet-sdk_7 pkgs.dotnet-sdk ];
  postBuild = ''
    rm -rfv $out/bin
    rm -rfv $out/dotnet
    cp -rv ${pkgs.dotnet-sdk_8}/dotnet $out/
    cp -rv ${pkgs.dotnet-sdk_8}/bin $out/
  '';
}

wanted to share this derivation incase anyone ever needed to use multiple dotnet versions at once

02:18:11
@emma:conduit.rory.gayEmma [it/its] ⚡️
[Rory@Rory-desktop:/Rory-Open-Architecture]$ dotnet --list-sdks
6.0.414 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
7.0.401 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
8.0.100-rc.1.23455.8 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
02:18:24
@emma:conduit.rory.gayEmma [it/its] ⚡️needed that to make rider work with a solution that has both net7 and net802:19:11
@magikarpz:matrix.orgmdarocha we already have that in nixpkgs 06:15:39
@magikarpz:matrix.orgmdarochait’s also described in the nixpkgs manual06:15:46
@magikarpz:matrix.orgmdarochadotnetCorePackages.combinePackages06:15:57
17 Oct 2023
@emma:conduit.rory.gayEmma [it/its] ⚡️ changed their display name from Emma [it/its] ⚡️ to Emma [it/its] (MRU test) ⚡️.15:25:22

Show newer messages


Back to Room ListRoom Version: 9