diff --git a/nixos/tests/radicle.nix b/nixos/tests/radicle.nix index 21fc208d8255..e802be63e83d 100644 --- a/nixos/tests/radicle.nix +++ b/nixos/tests/radicle.nix @@ -120,6 +120,9 @@ in }; }; + interactive.sshBackdoor.enable = true; + interactive.defaults.virtualisation.graphics = false; + testScript = { nodes, ... }@args: '' @@ -185,7 +188,7 @@ in ) with subtest("bob can sync bob's repository from the seed"): bob.succeed( - "cd /tmp/repo && rad sync --seed ${seed-nid}", + "cd /tmp/repo && rad sync --fetch --seed ${seed-nid}", "cd /tmp/repo && git pull" ) assert bob.succeed("cat /tmp/repo/testfile") == "hello bob\n" diff --git a/pkgs/by-name/ra/radicle-node/package.nix b/pkgs/by-name/ra/radicle-node/package.nix index 4cad77577500..ee0d3e98845b 100644 --- a/pkgs/by-name/ra/radicle-node/package.nix +++ b/pkgs/by-name/ra/radicle-node/package.nix @@ -15,9 +15,9 @@ xdg-utils, versionCheckHook, - version ? "1.6.1", - srcHash ? "sha256-7kwtWuYdYG3MDHThCkY5OZmx4pWaQXMYoOlJszmV2rM=", - cargoHash ? "sha256-59RyfSUJNoQ7EtQK3OSYOIO/YVEjeeM9ovbojHFX4pI=", + version ? "1.7.0", + srcHash ? "sha256-8/+ximoCPfNQJ/1APb0d5Z8kfWTI3SoN0RX9qrLP52o=", + cargoHash ? "sha256-xo8bH7f5MrUzoLat67rxiWMA24AnCngUkWWt402XAMQ=", updateScript ? ./update.sh, }: diff --git a/pkgs/by-name/ra/radicle-node/unstable.nix b/pkgs/by-name/ra/radicle-node/unstable.nix index 2f2fd8f30a34..d0727de810e4 100644 --- a/pkgs/by-name/ra/radicle-node/unstable.nix +++ b/pkgs/by-name/ra/radicle-node/unstable.nix @@ -1,8 +1,8 @@ { radicle-node }: radicle-node.override { - version = "1.7.0-rc.1"; - srcHash = "sha256-eq7rUzTbmPb0pRfcFnWP4vrbCTbXW9N4BleDCMUnLH8="; - cargoHash = "sha256-OkgWdu+7FY1tq0bjMbhjqjlJT9ZUgR8i12LhqyFJi+A="; + version = "1.7.0"; + srcHash = "sha256-8/+ximoCPfNQJ/1APb0d5Z8kfWTI3SoN0RX9qrLP52o="; + cargoHash = "sha256-xo8bH7f5MrUzoLat67rxiWMA24AnCngUkWWt402XAMQ="; updateScript = ./update-unstable.sh; } diff --git a/pkgs/by-name/sy/sylk/package.nix b/pkgs/by-name/sy/sylk/package.nix index f96678b48724..6a8bb4933279 100644 --- a/pkgs/by-name/sy/sylk/package.nix +++ b/pkgs/by-name/sy/sylk/package.nix @@ -1,48 +1,137 @@ { - appimageTools, - fetchurl, lib, - libxshmfence, + stdenv, + fetchFromGitHub, + fetchYarnDeps, + copyDesktopItems, + electron, + fixup-yarn-lock, + imagemagick, + makeDesktopItem, + node-gyp-build, + nodejs, + writableTmpDirAsHomeHook, + yarnBuildHook, + yarnConfigHook, + yarnInstallHook, }: -appimageTools.wrapType2 rec { +stdenv.mkDerivation (finalAttrs: { pname = "sylk"; - version = "3.7.0"; + version = "3.8.0"; - src = fetchurl { - url = "https://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; - hash = "sha256-3lWWc3aSn+aKM/gX4v2suVbj5sZPKl1r36eQP3a2pNg="; + src = fetchFromGitHub { + owner = "AGProjects"; + repo = "sylk-webrtc"; + tag = finalAttrs.version; + hash = "sha256-AJbZDAEqGfVPuo+My8wxfFWVPelO6XK2pKsglmLyRTw="; }; - extraPkgs = pkgs: [ - libxshmfence + yarnOfflineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/yarn.lock"; + hash = "sha256-VY97NPnT1225l6SLyTI3qITBGF7rqE5xz6UVVucblcU="; + }; + + # required for electron + passthru.appOfflineCache = fetchYarnDeps { + yarnLock = finalAttrs.src + "/app/yarn.lock"; + hash = "sha256-S9L/rveTuXF2vSqSDu+NlV5vP5f28lda/KMGU8iS1Zo="; + }; + + outputs = [ + "out" + "deps" + "electronDeps" ]; - appimageContents = appimageTools.extractType2 { inherit pname version src; }; + nativeBuildInputs = [ + copyDesktopItems + fixup-yarn-lock + imagemagick + node-gyp-build + nodejs # needed for executing package.json scripts + writableTmpDirAsHomeHook + yarnBuildHook + yarnConfigHook + yarnInstallHook + ]; - extraInstallCommands = '' - install -Dm444 ${appimageContents}/sylk-electron.desktop -t $out/share/applications/ - install -Dm444 ${appimageContents}/sylk-electron.png -t $out/share/icons/hicolor/512x512/apps/ + dontConfigure = true; + yarnBuildScript = "electron"; - substituteInPlace $out/share/applications/sylk-electron.desktop \ - --replace-fail 'Exec=AppRun --no-sandbox' 'Exec=${pname}' + preBuild = '' + originalOfflineMirror=$(yarn config --offline get yarn-offline-mirror) + + installDeps() { + local cache="$1" + local output="$2" + fixup-yarn-lock yarn.lock + yarn config --offline set yarn-offline-mirror "$cache" + yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts + patchShebangs node_modules/ + mkdir -p $output + cp -R node_modules $output + } + + installDeps $yarnOfflineCache $deps + + pushd app + installDeps ${finalAttrs.passthru.appOfflineCache} $electronDeps + popd + + yarn config --offline set yarn-offline-mirror $originalOfflineMirror ''; - profile = '' - export LC_ALL=C.UTF-8 + postFixup = '' + mkdir -p $out/share + mv $out/lib/node_modules/Sylk $out/share/Sylk + + rm -rf $out/lib + rm -rf $out/share/Sylk/.parcel-cache + rm -rf $out/share/Sylk/node_modules + + ln -s $electronDeps/node_modules $out/share/Sylk/app/node_modules + ln -s $deps/node_modules $out/share/Sylk/node_modules + + makeWrapper ${lib.getExe electron} $out/bin/sylk \ + --add-flags $out/share/Sylk/app \ + --inherit-argv0 + + # Convert the .ico file to PNGs, which are used by the desktop file + for size in 16 24 32 48 64 128 256; do + mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps + magick "$out/share/Sylk/build/icon.ico" -delete 1--1 \ + -background none \ + -thumbnail "$size"x"$size" \ + $out/share/icons/hicolor/"$size"x"$size"/apps/sylk-electron.png + done; ''; + desktopItems = [ + (makeDesktopItem { + name = "sylk"; + exec = "sylk"; + desktopName = "Sylk"; + comment = "WebRTC client"; + icon = "sylk-electron"; + startupWMClass = "Sylk"; + terminal = false; + categories = [ + "Audio" + "Video" + "AudioVideo" + ]; + }) + ]; + meta = { description = "Desktop client for SylkServer, a multiparty conferencing tool"; homepage = "https://sylkserver.com/"; license = lib.licenses.agpl3Plus; + changelog = "https://github.com/AGProjects/sylk-webrtc/blob/${finalAttrs.src.rev}/changelog.txt"; mainProgram = "sylk"; maintainers = with lib.maintainers; [ zimbatm ]; teams = with lib.teams; [ ngi ]; - platforms = [ - "i386-linux" - "x86_64-linux" - ]; - sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; + platforms = electron.meta.platforms; }; -} +}) diff --git a/pkgs/development/cuda-modules/packages/cuda_cccl.nix b/pkgs/development/cuda-modules/packages/cuda_cccl.nix index c4f39f875dd9..ee0839f6aa5b 100644 --- a/pkgs/development/cuda-modules/packages/cuda_cccl.nix +++ b/pkgs/development/cuda-modules/packages/cuda_cccl.nix @@ -23,6 +23,13 @@ buildRedist { rmdir -v "$PWD/include/cccl" ''; + # NVIDIA, in their wisdom, expect CCCL to be a directory inside include. + # https://github.com/NVIDIA/cutlass/blob/087c84df83d254b5fb295a7a408f1a1d554085cf/CMakeLists.txt#L773 + postInstall = lib.optionalString (cudaAtLeast "13.0") '' + nixLog "creating alias for ''${!outputInclude:?}/include/cccl" + ln -srv "''${!outputInclude:?}/include" "''${!outputInclude:?}/include/cccl" + ''; + meta = { description = "Building blocks that make it easier to write safe and efficient CUDA C++ code"; longDescription = '' diff --git a/pkgs/development/libraries/mesa/common.nix b/pkgs/development/libraries/mesa/common.nix index e9a837f233a0..a37debea366e 100644 --- a/pkgs/development/libraries/mesa/common.nix +++ b/pkgs/development/libraries/mesa/common.nix @@ -5,14 +5,14 @@ # nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa rec { pname = "mesa"; - version = "26.0.2"; + version = "26.0.3"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "mesa"; repo = "mesa"; rev = "mesa-${version}"; - hash = "sha256-OaE1XM421C0rMep03wM7g4Ttwwn/8z5neLQI8LY9b2U="; + hash = "sha256-CTOnJKsx9hDtLhDnuJSGc/lBQ2ZcDm3/Iie7awusGho="; }; meta = { diff --git a/pkgs/development/python-modules/torch/source/default.nix b/pkgs/development/python-modules/torch/source/default.nix index ed985066ba62..00e4c93d9c80 100644 --- a/pkgs/development/python-modules/torch/source/default.nix +++ b/pkgs/development/python-modules/torch/source/default.nix @@ -248,6 +248,7 @@ let && !(builtins.elem cudaPackages.cudaMajorVersion [ "11" "12" + "13" ]); "MPI cudatoolkit does not match cudaPackages.cudatoolkit" = MPISupport && cudaSupport && (mpi.cudatoolkit != cudaPackages.cudatoolkit);