From fe544f3c087859130ff12ebc10b3975d644f9488 Mon Sep 17 00:00:00 2001 From: eljamm Date: Wed, 26 Feb 2025 23:53:59 +0100 Subject: [PATCH 1/2] yazi-unwrapped: fix update script --- pkgs/by-name/ya/yazi-unwrapped/package.nix | 4 +++- pkgs/by-name/ya/yazi-unwrapped/update.sh | 27 +++++++++++++++------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/pkgs/by-name/ya/yazi-unwrapped/package.nix b/pkgs/by-name/ya/yazi-unwrapped/package.nix index 4312fc5647da5..14d97d43dc304 100644 --- a/pkgs/by-name/ya/yazi-unwrapped/package.nix +++ b/pkgs/by-name/ya/yazi-unwrapped/package.nix @@ -26,7 +26,7 @@ let hash = "sha256-kEVXejDg4ChFoMNBvKlwdFEyUuTcY2VuK9j0PdafKus="; }; in -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage { pname = "yazi"; inherit version; @@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec { code_src man_src ]; + sourceRoot = code_src.name; useFetchCargoVendor = true; @@ -59,6 +60,7 @@ rustPlatform.buildRustPackage rec { ''; passthru.updateScript.command = [ ./update.sh ]; + passthru.srcs = { inherit code_src man_src; }; # for updating sources meta = { description = "Blazing fast terminal file manager written in Rust, based on async I/O"; diff --git a/pkgs/by-name/ya/yazi-unwrapped/update.sh b/pkgs/by-name/ya/yazi-unwrapped/update.sh index e87b94dfc2419..6b32e2d8c3472 100755 --- a/pkgs/by-name/ya/yazi-unwrapped/update.sh +++ b/pkgs/by-name/ya/yazi-unwrapped/update.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash -p bash nix-update curl coreutils jq common-updater-scripts nix-prefetch +#!nix-shell -i bash -p bash nix-update curl coreutils jq common-updater-scripts gawk set -eux @@ -26,16 +26,27 @@ if [[ "$oldVersion" == "$latestVersion" ]]; then exit 0 fi -echo "Updating Yazi" +echo "Updating code sources" -# Version -update-source-version yazi-unwrapped "${latestVersion}" +update-source-version yazi-unwrapped "${latestVersion}" --source-key=passthru.srcs.code_src pushd "$SCRIPT_DIR" -# Build date +echo "Updating build date" + sed -i 's#env.VERGEN_BUILD_DATE = "[^"]*"#env.VERGEN_BUILD_DATE = "'"${latestBuildDate}"'"#' package.nix -# Hashes -cargoHash=$(nix-prefetch "{ sha256 }: (import $NIXPKGS_DIR {}).yazi-unwrapped.cargoDeps.overrideAttrs (_: { outputHash = sha256; })") -sed -i -E 's#\bcargoHash = ".*?"#cargoHash = "'"$cargoHash"'"#' package.nix +echo "Updating cargoHash" + +# Set cargoHash to an empty string +sed -i -E 's/cargoHash = ".*?"/cargoHash = ""/' package.nix + +# Build and get new hash +cargoHash=$( (nix-build "$NIXPKGS_DIR" -A yazi-unwrapped 2>&1 || true) | awk '/got/{print $2}') + +if [ "$cargoHash" == "" ]; then + echo "Failed to get cargoHash, please update it manually" + exit 0 +fi + +sed -i -E 's/cargoHash = ".*?"/cargoHash = "'"$cargoHash"'"/' package.nix popd From a77350764593cdf8cdfe8676de0761864928b204 Mon Sep 17 00:00:00 2001 From: eljamm Date: Thu, 27 Feb 2025 21:57:04 +0100 Subject: [PATCH 2/2] yazi-unwrapped: use finalAttrs This should be better for overriding sources --- pkgs/by-name/ya/yazi-unwrapped/package.nix | 50 ++++++++++------------ 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/pkgs/by-name/ya/yazi-unwrapped/package.nix b/pkgs/by-name/ya/yazi-unwrapped/package.nix index 14d97d43dc304..a9cc88e17e601 100644 --- a/pkgs/by-name/ya/yazi-unwrapped/package.nix +++ b/pkgs/by-name/ya/yazi-unwrapped/package.nix @@ -8,34 +8,13 @@ Foundation, rust-jemalloc-sys, }: -let - version = "25.2.26"; - - code_src = fetchFromGitHub { - owner = "sxyazi"; - repo = "yazi"; - tag = "v${version}"; - hash = "sha256-DqhqpQRCSBTGonL9+bP7pA3mO2CemlbhwzShVdrL1/0="; - }; - - man_src = fetchFromGitHub { - name = "manpages"; # needed to ensure name is unique - owner = "yazi-rs"; - repo = "manpages"; - rev = "8950e968f4a1ad0b83d5836ec54a070855068dbf"; - hash = "sha256-kEVXejDg4ChFoMNBvKlwdFEyUuTcY2VuK9j0PdafKus="; - }; -in -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage (finalAttrs: { pname = "yazi"; - inherit version; + version = "25.2.26"; - srcs = [ - code_src - man_src - ]; + srcs = builtins.attrValues finalAttrs.passthru.srcs; - sourceRoot = code_src.name; + sourceRoot = finalAttrs.passthru.srcs.code_src.name; useFetchCargoVendor = true; cargoHash = "sha256-xg37aypFKY0ZG9GOkygTHlOAjqkTuhLNKo8Fz6MF2ZY="; @@ -53,14 +32,29 @@ rustPlatform.buildRustPackage { --fish ./yazi-boot/completions/yazi.fish \ --zsh ./yazi-boot/completions/_yazi - installManPage ../${man_src.name}/yazi{.1,-config.5} + installManPage ../${finalAttrs.passthru.srcs.man_src.name}/yazi{.1,-config.5} install -Dm444 assets/yazi.desktop -t $out/share/applications install -Dm444 assets/logo.png $out/share/pixmaps/yazi.png ''; passthru.updateScript.command = [ ./update.sh ]; - passthru.srcs = { inherit code_src man_src; }; # for updating sources + passthru.srcs = { + code_src = fetchFromGitHub { + owner = "sxyazi"; + repo = "yazi"; + tag = "v${finalAttrs.version}"; + hash = "sha256-DqhqpQRCSBTGonL9+bP7pA3mO2CemlbhwzShVdrL1/0="; + }; + + man_src = fetchFromGitHub { + name = "manpages"; # needed to ensure name is unique + owner = "yazi-rs"; + repo = "manpages"; + rev = "8950e968f4a1ad0b83d5836ec54a070855068dbf"; + hash = "sha256-kEVXejDg4ChFoMNBvKlwdFEyUuTcY2VuK9j0PdafKus="; + }; + }; meta = { description = "Blazing fast terminal file manager written in Rust, based on async I/O"; @@ -76,4 +70,4 @@ rustPlatform.buildRustPackage { ]; mainProgram = "yazi"; }; -} +})