diff --git a/tvix/nix-compat/src/derivation/mod.rs b/tvix/nix-compat/src/derivation/mod.rs index 53bdccef6..6912b692b 100644 --- a/tvix/nix-compat/src/derivation/mod.rs +++ b/tvix/nix-compat/src/derivation/mod.rs @@ -85,7 +85,7 @@ impl Derivation { /// The text_hash_string is then passed to the build_store_path function. pub fn calculate_derivation_path(&self, name: &str) -> Result { // append .drv to the name - let name_with_suffix = &format!("{}.drv", name); + let name = &format!("{}.drv", name); // collect the list of paths from input_sources and input_derivations // into a (sorted, guaranteed by BTreeSet) list of references @@ -97,9 +97,9 @@ impl Derivation { inputs }; - let text_hash_str = &text_hash_string(name_with_suffix, self.to_aterm_string(), references); + let text_hash_str = &text_hash_string(name, self.to_aterm_string(), references); - utils::build_store_path(true, text_hash_str, name) + utils::build_store_path(text_hash_str, name) } /// Returns the FOD digest, if the derivation is fixed-output, or None if @@ -250,7 +250,7 @@ impl Derivation { output_path_name, )); let abs_store_path = - utils::build_store_path(false, &fp, &output_path_name)?.to_absolute_path(); + utils::build_store_path(&fp, &output_path_name)?.to_absolute_path(); output.path = abs_store_path.clone(); self.environment diff --git a/tvix/nix-compat/src/derivation/utils.rs b/tvix/nix-compat/src/derivation/utils.rs index 68ab3e23c..ee7ea26c6 100644 --- a/tvix/nix-compat/src/derivation/utils.rs +++ b/tvix/nix-compat/src/derivation/utils.rs @@ -28,7 +28,6 @@ fn compress_hash(input: &[u8], output_size: usize) -> Vec { /// The string is hashed with sha256, its digest is compressed to 20 bytes, and /// nixbase32-encoded (32 characters) pub(super) fn build_store_path( - is_derivation: bool, fingerprint: &str, name: &str, ) -> Result { @@ -38,12 +37,8 @@ pub(super) fn build_store_path( hasher.finalize() }; let compressed = compress_hash(&digest, 20); - if is_derivation { - StorePath::from_string(format!("{}-{}.drv", nixbase32::encode(&compressed), name).as_str()) - } else { - StorePath::from_string(format!("{}-{}", nixbase32::encode(&compressed), name,).as_str()) - } - .map_err(|_e| DerivationError::InvalidOutputName(name.to_string())) + StorePath::from_string(format!("{}-{}", nixbase32::encode(&compressed), name,).as_str()) + .map_err(|_e| DerivationError::InvalidOutputName(name.to_string())) // Constructing the StorePath can only fail if the passed output name was // invalid, so map errors to a [DerivationError::InvalidOutputName]. } @@ -56,5 +51,5 @@ pub fn path_with_references, I: IntoIterator, C: AsRef<[ references: I, ) -> Result { let text_hash_str = text_hash_string(name, content, references); - build_store_path(false, &text_hash_str, name) + build_store_path(&text_hash_str, name) }