Skip to content

Commit

Permalink
fix: prepend path for build (#1429)
Browse files Browse the repository at this point in the history
  • Loading branch information
wolfv authored Feb 14, 2025
1 parent c041b57 commit 6776d0a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
8 changes: 7 additions & 1 deletion src/cache.rs
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,12 @@ impl Output {
jinja.context_mut().insert(k.clone(), v.clone().into());
}

let build_prefix = if cache.build.merge_build_and_host_envs {
None
} else {
Some(&self.build_configuration.directories.build_prefix)
};

cache
.build
.script()
Expand All @@ -240,7 +246,7 @@ impl Output {
&self.build_configuration.directories.work_dir,
&self.build_configuration.directories.recipe_dir,
&self.build_configuration.directories.host_prefix,
Some(&self.build_configuration.directories.build_prefix),
build_prefix,
Some(jinja),
None, // sandbox config
)
Expand Down
16 changes: 8 additions & 8 deletions src/script/interpreter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ pub(crate) use python::PythonInterpreter;

use rattler_conda_types::Platform;
use rattler_shell::{
activation::{prefix_path_entries, ActivationError, ActivationVariables, Activator},
activation::{
prefix_path_entries, ActivationError, ActivationVariables, Activator,
PathModificationBehavior,
},
shell::{self, Shell},
};

Expand Down Expand Up @@ -56,15 +59,12 @@ pub trait Interpreter {
let host_prefix_activator =
Activator::from_path(&args.run_prefix, shell_type, args.execution_platform)?;

let current_path = std::env::var(shell_type.path_var(&args.execution_platform))
.ok()
.map(|p| std::env::split_paths(&p).collect::<Vec<_>>());
let conda_prefix = std::env::var("CONDA_PREFIX").ok().map(|p| p.into());

let activation_vars = ActivationVariables {
conda_prefix,
path: current_path,
path_modification_behavior: Default::default(),
path: None,
path_modification_behavior: PathModificationBehavior::Prepend,
};

let host_activation = host_prefix_activator.activation(activation_vars)?;
Expand All @@ -75,8 +75,8 @@ pub trait Interpreter {

let activation_vars = ActivationVariables {
conda_prefix: None,
path: Some(host_activation.path.clone()),
path_modification_behavior: Default::default(),
path: None,
path_modification_behavior: PathModificationBehavior::Prepend,
};

let build_activation = build_prefix_activator.activation(activation_vars)?;
Expand Down
8 changes: 7 additions & 1 deletion src/script/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,12 @@ impl Output {
let selector_config = self.build_configuration.selector_config();
let jinja = Jinja::new(selector_config.clone()).with_context(&self.recipe.context);

let build_prefix = if self.recipe.build().merge_build_and_host_envs() {
None
} else {
Some(&self.build_configuration.directories.build_prefix)
};

self.recipe
.build()
.script()
Expand All @@ -393,7 +399,7 @@ impl Output {
&self.build_configuration.directories.work_dir,
&self.build_configuration.directories.recipe_dir,
&self.build_configuration.directories.host_prefix,
Some(&self.build_configuration.directories.build_prefix),
build_prefix,
Some(jinja),
self.build_configuration.sandbox_config(),
)
Expand Down

0 comments on commit 6776d0a

Please sign in to comment.