diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e0130524..263a7539 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -24,7 +24,7 @@ jobs:
path: src/micro_ros_setup
ref: ${{ inputs.ci_target_ref }}
- - uses: ros-tooling/setup-ros@0.7.7
+ - uses: ros-tooling/setup-ros@0.7.9
with:
use-ros2-testing: false
required-ros-distributions: ${{ env.ROS_DISTRO }}
@@ -63,7 +63,7 @@ jobs:
path: src/micro_ros_setup
ref: ${{ inputs.ci_target_ref }}
- - uses: ros-tooling/setup-ros@0.7.7
+ - uses: ros-tooling/setup-ros@0.7.9
with:
use-ros2-testing: false
required-ros-distributions: ${{ env.ROS_DISTRO }}
@@ -205,7 +205,7 @@ jobs:
path: src/micro_ros_setup
ref: ${{ inputs.ci_target_ref }}
- - uses: ros-tooling/setup-ros@0.7.7
+ - uses: ros-tooling/setup-ros@0.7.9
with:
use-ros2-testing: false
required-ros-distributions: ${{ env.ROS_DISTRO }}
diff --git a/config/freertos/esp32/build.sh b/config/freertos/esp32/build.sh
index bf6e0b1f..3325c457 100755
--- a/config/freertos/esp32/build.sh
+++ b/config/freertos/esp32/build.sh
@@ -1,5 +1,8 @@
EXTENSIONS_DIR=$FW_TARGETDIR/freertos_apps/microros_esp32_extensions
+# Source virtualenv
+source $FW_TARGETDIR/venv/bin/activate
+
. $PREFIX/config/utils.sh
export IDF_TOOLS_PATH=$FW_TARGETDIR/toolchain/espressif
diff --git a/config/freertos/esp32/create.sh b/config/freertos/esp32/create.sh
index 19c420c6..00796724 100755
--- a/config/freertos/esp32/create.sh
+++ b/config/freertos/esp32/create.sh
@@ -1,4 +1,13 @@
pushd $FW_TARGETDIR >/dev/null
+ # Create a virtual environment
+ python3 -m venv $FW_TARGETDIR/venv
+ source $FW_TARGETDIR/venv/bin/activate
+
+ # Install deps
+ pip3 install catkin_pkg empy lark-parser colcon-common-extensions
+
+ pip3 install virtualenv
+
# Install toolchain
mkdir toolchain
@@ -19,14 +28,13 @@ pushd $FW_TARGETDIR >/dev/null
echo "Error: python3-pip package must be installed before continuing..."
exit 1
fi
- pip3 install virtualenv --break-system-packages
python3 esp-idf/tools/idf_tools.py install-python-env
eval $(python3 $FW_TARGETDIR/toolchain/esp-idf/tools/idf_tools.py export --prefer-system)
. $IDF_PATH/export.sh
- pip3 install catkin_pkg lark-parser colcon-common-extensions --break-system-packages
+ pip3 install catkin_pkg lark-parser colcon-common-extensions
popd >/dev/null
diff --git a/config/freertos/esp32/flash.sh b/config/freertos/esp32/flash.sh
index 3322c221..64c05585 100755
--- a/config/freertos/esp32/flash.sh
+++ b/config/freertos/esp32/flash.sh
@@ -3,6 +3,9 @@ EXTENSIONS_DIR=$FW_TARGETDIR/freertos_apps/microros_esp32_extensions
export IDF_TOOLS_PATH=$FW_TARGETDIR/toolchain/espressif
export IDF_PATH=$FW_TARGETDIR/toolchain/esp-idf
+# Source virtualenv
+source $FW_TARGETDIR/venv/bin/activate
+
eval $(python3 $FW_TARGETDIR/toolchain/esp-idf/tools/idf_tools.py export --prefer-system)
. $IDF_PATH/export.sh
diff --git a/config/zephyr/generic/build.sh b/config/zephyr/generic/build.sh
index dcda6ab9..41bc9d12 100755
--- a/config/zephyr/generic/build.sh
+++ b/config/zephyr/generic/build.sh
@@ -1,6 +1,8 @@
. $PREFIX/config/utils.sh
pushd $FW_TARGETDIR >/dev/null
+ source $FW_TARGETDIR/venv/bin/activate
+
source $FW_TARGETDIR/zephyrproject/zephyr/zephyr-env.sh
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
diff --git a/config/zephyr/generic/create.sh b/config/zephyr/generic/create.sh
index d7671035..a468d927 100755
--- a/config/zephyr/generic/create.sh
+++ b/config/zephyr/generic/create.sh
@@ -18,8 +18,15 @@ export PATH=~/.local/bin:"$PATH"
export ZEPHYR_VERSION="v0.12.4"
export ARCH=$(uname -m)
+# Create a virtual environment
+python3 -m venv $FW_TARGETDIR/venv
+source $FW_TARGETDIR/venv/bin/activate
+
# Install west
-pip3 install --user -U west --break-system-packages
+pip3 install west
+
+# Install requirements
+pip3 install catkin_pkg empy
pushd $FW_TARGETDIR >/dev/null
@@ -31,7 +38,7 @@ pushd $FW_TARGETDIR >/dev/null
west update
popd >/dev/null
- pip3 install -r zephyrproject/zephyr/scripts/requirements.txt --ignore-installed --break-system-packages
+ pip3 install -r zephyrproject/zephyr/scripts/requirements.txt --ignore-installed
if [ "$PLATFORM" = "host" ]; then
if [ "$ARCH" = "aarch64" ]; then
@@ -72,6 +79,6 @@ pushd $FW_TARGETDIR >/dev/null
touch mcu_ws/ros2/ros2_tracing/lttngpy/COLCON_IGNORE
# Upgrade sphinx
- pip install --force-reinstall Sphinx==4.2.0 --break-system-packages
+ pip install --force-reinstall Sphinx==4.2.0
popd >/dev/null
diff --git a/config/zephyr/generic/flash.sh b/config/zephyr/generic/flash.sh
index 13fb4bef..136ce1fa 100755
--- a/config/zephyr/generic/flash.sh
+++ b/config/zephyr/generic/flash.sh
@@ -1,5 +1,7 @@
pushd $FW_TARGETDIR > /dev/null
+source $FW_TARGETDIR/venv/bin/activate
+
ZEPHYR_BUILD_DIR="$FW_TARGETDIR/build/zephyr"
# Host platform (=native_posix) is special, as flashing is actually just executing the binary
diff --git a/config/zephyr/generic/package.xml b/config/zephyr/generic/package.xml
index fa5c301c..54bdb2e3 100644
--- a/config/zephyr/generic/package.xml
+++ b/config/zephyr/generic/package.xml
@@ -15,5 +15,6 @@
gcc-multilib
g++-multilib
openocd
+ python3-venv