You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It appears that when merge_build_and_host_envs: true is set there are two issues
While the specs of the build and host envs are merged into the host env, a separate build env with its own prefix is created on disk. When merging build and host, there should be only one env made on disk with the net result that the env vars CONDA_PREFIX and PREFIX have the same value.
When rattler-build is activating the environments, it is clobbering the PATH instead of using things like export PATH=/new/paths:${PATH}.
Reproducer
Here is a recipe w/ build script that illustrates the issues
echo"looking for cmake"
cmake --help
echo"looking for eups"
eups -h
echo"ensuring the prefixes are the same for build and host"if [[ ${PREFIX}!=${CONDA_PREFIX} ]];thenecho"PREFIX and CONDA_PREFIX are not the same. Host and build envs have not been merged!"exit 1
fi
results
output of build at cli:
% rattler-build build
╭─ Finding outputs from recipe
│ Found 1 variants
│
│ Build variant: merge-build-host-0.1-h60d57d3_0
│
│ ╭─────────────────┬───────────╮
│ │ Variant ┆ Version │
│ ╞═════════════════╪═══════════╡
│ │ target_platform ┆ osx-arm64 │
│ ╰─────────────────┴───────────╯
│
╰─────────────────── (took 0 seconds)
╭─ Running build for recipe: merge-build-host-0.1-h60d57d3_0
│
│ ╭─ Fetching source code
│ │ No sources to fetch
│ │
│ ╰─────────────────── (took 0 seconds)
│
│ ╭─ Resolving environments
│ │
│ │ Resolving host environment:
│ │ Platform: osx-arm64 [__unix=0=0, __osx=13.7.1=0, __archspec=1=m2]
│ │ Channels:
│ │ - file:///opt/conda-bld/
│ │ - conda-forge
│ │ Specs:
│ │ - python
│ │ - eups
│ │ - cmake
│ │
│ │ ╭─────────────────┬──────────────┬────────────────────┬─────────────┬────────────╮
│ │ │ Package ┆ Version ┆ Build ┆ Channel ┆ Size │
│ │ ╞═════════════════╪══════════════╪════════════════════╪═════════════╪════════════╡
│ │ │ bzip2 ┆ 1.0.8 ┆ h99b78c6_7 ┆ conda-forge ┆ 120.03 KiB │
│ │ │ c-ares ┆ 1.34.4 ┆ h5505292_0 ┆ conda-forge ┆ 175.29 KiB │
│ │ │ ca-certificates ┆ 2025.1.31 ┆ hf0a4a13_0 ┆ conda-forge ┆ 154.71 KiB │
│ │ │ cmake ┆ 3.31.5 ┆ ha25475f_0 ┆ conda-forge ┆ 15.78 MiB │
│ │ │ eups ┆ 2.2.10 ┆ py313h8f79df9_1 ┆ conda-forge ┆ 541.12 KiB │
│ │ │ krb5 ┆ 1.21.3 ┆ h237132a_0 ┆ conda-forge ┆ 1.10 MiB │
│ │ │ libcurl ┆ 8.11.1 ┆ h73640d1_0 ┆ conda-forge ┆ 376.07 KiB │
│ │ │ libcxx ┆ 19.1.7 ┆ ha82da77_0 ┆ conda-forge ┆ 511.24 KiB │
│ │ │ libedit ┆ 3.1.20250104 ┆ pl5321hafb1f1b_0 ┆ conda-forge ┆ 105.17 KiB │
│ │ │ libev ┆ 4.33 ┆ h93a5062_2 ┆ conda-forge ┆ 104.94 KiB │
│ │ │ libexpat ┆ 2.6.4 ┆ h286801f_0 ┆ conda-forge ┆ 63.18 KiB │
│ │ │ libffi ┆ 3.4.2 ┆ h3422bc3_5 ┆ conda-forge ┆ 38.11 KiB │
│ │ │ liblzma ┆ 5.6.4 ┆ h39f12f2_0 ┆ conda-forge ┆ 96.63 KiB │
│ │ │ libmpdec ┆ 4.0.0 ┆ h99b78c6_0 ┆ conda-forge ┆ 67.64 KiB │
│ │ │ libnghttp2 ┆ 1.64.0 ┆ h6d7220d_0 ┆ conda-forge ┆ 553.44 KiB │
│ │ │ libsqlite ┆ 3.48.0 ┆ h3f77e49_1 ┆ conda-forge ┆ 832.84 KiB │
│ │ │ libssh2 ┆ 1.11.1 ┆ h9cc3647_0 ┆ conda-forge ┆ 272.49 KiB │
│ │ │ libuv ┆ 1.50.0 ┆ h5505292_0 ┆ conda-forge ┆ 409.07 KiB │
│ │ │ libzlib ┆ 1.3.1 ┆ h8359307_2 ┆ conda-forge ┆ 45.35 KiB │
│ │ │ ncurses ┆ 6.5 ┆ h5e97a16_3 ┆ conda-forge ┆ 778.35 KiB │
│ │ │ openssl ┆ 3.4.0 ┆ h81ee809_1 ┆ conda-forge ┆ 2.80 MiB │
│ │ │ python ┆ 3.13.1 ┆ h4f43103_105_cp313 ┆ conda-forge ┆ 12.32 MiB │
│ │ │ python_abi ┆ 3.13 ┆ 5_cp313 ┆ conda-forge ┆ 6.17 KiB │
│ │ │ readline ┆ 8.2 ┆ h92ec313_1 ┆ conda-forge ┆ 244.48 KiB │
│ │ │ rhash ┆ 1.4.5 ┆ h7ab814d_0 ┆ conda-forge ┆ 173.09 KiB │
│ │ │ tk ┆ 8.6.13 ┆ h5083fa2_1 ┆ conda-forge ┆ 3.00 MiB │
│ │ │ tzdata ┆ 2025a ┆ h78e105d_0 ┆ conda-forge ┆ 120.04 KiB │
│ │ │ zstd ┆ 1.5.6 ┆ hb46c0d2_0 ┆ conda-forge ┆ 395.59 KiB │
│ │ ╰─────────────────┴──────────────┴────────────────────┴─────────────┴────────────╯
│ │
│ │ Finalized run dependencies:
│ │ ╭──────────────────┬───────────────────────────────────────╮
│ │ │ Name ┆ Spec │
│ │ ╞══════════════════╪═══════════════════════════════════════╡
│ │ │ Run dependencies ┆ │
│ │ │ python ┆ │
│ │ │ eups ┆ │
│ │ │ python_abi ┆ 3.13.**_cp313 (RE of [host: python]) │
│ │ ╰──────────────────┴───────────────────────────────────────╯
│ │
│ ╰─────────────────── (took 0 seconds)
│
│ Installing build environment
│ ✔ Successfully updated the build environment
│
│ Installing host environment
│ ✔ Successfully updated the host environment
│
│ ╭─ Running build script
│ │ + echo'looking for cmake'
│ │ looking for cmake
│ │ + cmake --help
│ │ Usage
│ │ cmake [options] <path-to-source>
│ │ cmake [options] <path-to-existing-build>
│ │ cmake [options] -S <path-to-source> -B <path-to-build>
│ │ Specify a source directory to (re-)generate a build system foritin the
│ │ current working directory. Specify an existing build directory to
│ │ re-generate its build system.
│ │ Options
│ │ -S <path-to-source> = Explicitly specify a source directory.
│ │ -B <path-to-build> = Explicitly specify a build directory.
│ │ -C <initial-cache> = Pre-load a script to populate the cache.
│ │ -D <var>[:<type>]=<value> = Create or update a cmake cache entry.
│ │ -U <globbing_expr> = Remove matching entries from CMake cache.
│ │ -G <generator-name> = Specify a build system generator.
│ │ -T <toolset-name> = Specify toolset name if supported by
│ │ generator.
│ │ -A <platform-name> = Specify platform name if supported by
│ │ generator.
│ │ --toolchain <file> = Specify toolchain file
│ │ [CMAKE_TOOLCHAIN_FILE].
│ │ --install-prefix <directory> = Specify install directory
│ │ [CMAKE_INSTALL_PREFIX].
│ │ -Wdev = Enable developer warnings.
│ │ -Wno-dev = Suppress developer warnings.
│ │ -Werror=dev = Make developer warnings errors.
│ │ + echo'looking for eups'
│ │ -Wno-error=dev = Make developer warnings not errors.
│ │ -Wdeprecated = Enable deprecation warnings.
│ │ + eups -h
│ │ -Wno-deprecated = Suppress deprecation warnings.
│ │ -Werror=deprecated = Make deprecated macro and functionwarnings
│ │ errors.
│ │ -Wno-error=deprecated = Make deprecated macro and functionwarnings
│ │ not errors.
│ │ --preset <preset>,--preset=<preset>
│ │ = Specify a configure preset.
│ │ --list-presets[=<type>] = List available presets.
│ │ --workflow [<options>] = Run a workflow preset.
│ │ -E = CMake command mode. Run "cmake -E"for a
│ │ summary of commands.
│ │ -L[A][H] = List non-advanced cached variables.
│ │ -LR[A][H] <regex> = Show cached variables that match the regex.
│ │ --fresh = Configure a fresh build tree, removing any
│ │ existing cache file.
│ │ --build <dir> = Build a CMake-generated project binary tree.
│ │ Run "cmake --build" to see compatible
│ │ options and a quick help.
│ │ --install <dir> = Install a CMake-generated project binary
│ │ tree. Run "cmake --install" to see
│ │ compatible options and a quick help.
│ │ --open <dir> = Open generated project in the associated
│ │ application.
│ │ -N = View mode only.
│ │ -P <file> = Process script mode.
│ │ --find-package = Legacy pkg-config like mode. Do not use.
│ │ --graphviz=<file> = Generate graphviz of dependencies, see
│ │ CMakeGraphVizOptions.cmake for more.
│ │ --system-information [file] = Dump information about this system.
│ │ --print-config-dir = Print CMake config directory for user-wide
│ │ FileAPI queries.
│ │ --log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE>
│ │ = Set the verbosity of messages from CMake
│ │ files. --loglevel is also accepted for
│ │ backward compatibility reasons.
│ │ --log-context = Prepend log messages with context, if given
│ │ --debug-trycompile = Do not delete the try_compile build tree.
│ │ Only useful on one try_compile at a time.
│ │ --debug-output = Put cmake in a debug mode.
│ │ --debug-find = Put cmake find in a debug mode.
│ │ --debug-find-pkg=<pkg-name>[,...]
│ │ = Limit cmake debug-find to the
│ │ comma-separated list of packages
│ │ --debug-find-var=<var-name>[,...]
│ │ = Limit cmake debug-find to the
│ │ comma-separated list of result variables
│ │ --trace = Put cmake in trace mode.
│ │ --trace-expand = Put cmake in trace mode with variable
│ │ expansion.
│ │ --trace-format=<human|json-v1>
│ │ $SRC_DIR/conda_build.sh: line 14: eups: command not found
│ │ = Set the output format of the trace.
│ │ --trace-source=<file> = Trace only this CMake file/module. Multiple
│ │ options allowed.
│ │ --trace-redirect=<file> = Redirect trace output to a file instead of
│ │ stderr.
│ │ --warn-uninitialized = Warn about uninitialized values.
│ │ --no-warn-unused-cli = Don't warn about command line options. │ │ --check-system-vars = Find problems with variable usage in system │ │ files. │ │ --compile-no-warning-as-error= Ignore COMPILE_WARNING_AS_ERROR property and │ │ CMAKE_COMPILE_WARNING_AS_ERROR variable. │ │ --profiling-format=<fmt> = Output data for profiling CMake scripts. │ │ Supported formats: google-trace │ │ --profiling-output=<file> = Select an output path for the profiling data │ │ enabled through --profiling-format. │ │ -h,-H,--help,-help,-usage,/? = Print usage information and exit. │ │ --version,-version,/V [<file>] │ │ = Print version number and exit. │ │ --help <keyword> [<file>] = Print help for one keyword and exit. │ │ --help-full [<file>] = Print all help manuals and exit. │ │ --help-manual <man> [<file>] = Print one help manual and exit. │ │ --help-manual-list [<file>] = List help manuals available and exit. │ │ --help-command <cmd> [<file>]= Print help for one command and exit. │ │ --help-command-list [<file>] = List commands with help available and exit. │ │ --help-commands [<file>] = Print cmake-commands manual and exit. │ │ --help-module <mod> [<file>] = Print help for one module and exit. │ │ --help-module-list [<file>] = List modules with help available and exit. │ │ --help-modules [<file>] = Print cmake-modules manual and exit. │ │ --help-policy <cmp> [<file>] = Print help for one policy and exit. │ │ --help-policy-list [<file>] = List policies with help available and exit. │ │ --help-policies [<file>] = Print cmake-policies manual and exit. │ │ --help-property <prop> [<file>] │ │ = Print help for one property and exit. │ │ --help-property-list [<file>]= List properties with help available and │ │ exit. │ │ --help-properties [<file>] = Print cmake-properties manual and exit. │ │ --help-variable var [<file>] = Print help for one variable and exit. │ │ --help-variable-list [<file>]= List variables with help available and exit. │ │ --help-variables [<file>] = Print cmake-variables manual and exit. │ │ Generators │ │ The following generators are available on this platform (* marks default): │ │ * Unix Makefiles = Generates standard UNIX makefiles. │ │ Ninja = Generates build.ninja files. │ │ Ninja Multi-Config = Generates build-<Config>.ninja files. │ │ Watcom WMake = Generates Watcom WMake makefiles. │ │ Xcode = Generate Xcode project files. │ │ CodeBlocks - Ninja = Generates CodeBlocks project files │ │ (deprecated). │ │ CodeBlocks - Unix Makefiles = Generates CodeBlocks project files │ │ (deprecated). │ │ CodeLite - Ninja = Generates CodeLite project files │ │ (deprecated). │ │ CodeLite - Unix Makefiles = Generates CodeLite project files │ │ (deprecated). │ │ Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files │ │ (deprecated). │ │ Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files │ │ (deprecated). │ │ Kate - Ninja = Generates Kate project files (deprecated). │ │ Kate - Ninja Multi-Config = Generates Kate project files (deprecated). │ │ Kate - Unix Makefiles = Generates Kate project files (deprecated). │ │ Sublime Text 2 - Ninja = Generates Sublime Text 2 project files │ │ (deprecated). │ │ Sublime Text 2 - Unix Makefiles │ │ = Generates Sublime Text 2 project files │ │ (deprecated). │ │ looking for eups │ │ × error Script failed with status 127 │ │ × error Work directory: '/opt/conda-bld/bld/rattler-build_merge-build-host_1738940687/work' │ │ × error To debug the build, run it manually in the work directory (execute the `./conda_build.sh` or `conda_build.bat` script) │ │ │ ╰─────────────────── (took 7 seconds) │ ╰─────────────────── (took 8 seconds)Error: × Script failed
The command-line tool eups requires an activation script to be run and this script adds it to the PATH. The clobbering of the PATH variable causes this issue.
You can see the PATH clobbering and the extra build environment activation that should not be there.
build directory on disk:
% ls -1
build_env
host_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place
work
% ls -1 work
build_env.sh
conda_build.sh
You can see the build_env that should not be there.
The text was updated successfully, but these errors were encountered:
It appears that when
merge_build_and_host_envs: true
is set there are two issuesexport PATH=/new/paths:${PATH}
.Reproducer
Here is a recipe w/ build script that illustrates the issues
recipe.yaml
build scipt
results
output of build at cli:
The command-line tool
eups
requires an activation script to be run and this script adds it to the PATH. The clobbering of the PATH variable causes this issue.generated build activation script:
You can see the PATH clobbering and the extra build environment activation that should not be there.
build directory on disk:
You can see the
build_env
that should not be there.The text was updated successfully, but these errors were encountered: