diff --git a/patch/ros-jazzy-launch-ros.win.patch b/patch/ros-jazzy-launch-ros.win.patch new file mode 100644 index 000000000..b8879b970 --- /dev/null +++ b/patch/ros-jazzy-launch-ros.win.patch @@ -0,0 +1,17 @@ +diff --git a/launch_ros/launch_ros/substitutions/executable_in_package.py b/launch_ros/launch_ros/substitutions/executable_in_package.py +index f300c39..5b77ffc 100644 +--- a/launch_ros/launch_ros/substitutions/executable_in_package.py ++++ b/launch_ros/launch_ros/substitutions/executable_in_package.py +@@ -80,6 +80,12 @@ class ExecutableInPackage(FindPackagePrefix): + "package '{}' found at '{}', but libexec directory '{}' does not exist".format( + package, package_prefix, package_libexec)) + result = which(executable, path=package_libexec) ++ ++ if result is None and os.name == 'nt' and executable.lower().endswith('.py'): ++ candidate = os.path.join(package_libexec, executable) ++ if os.path.isfile(candidate): ++ result = candidate ++ + if result is None: + raise SubstitutionFailure( + "executable '{}' not found on the libexec directory '{}' ".format( \ No newline at end of file diff --git a/patch/ros-jazzy-launch.win.patch b/patch/ros-jazzy-launch.win.patch new file mode 100644 index 000000000..2f4a2e21c --- /dev/null +++ b/patch/ros-jazzy-launch.win.patch @@ -0,0 +1,23 @@ +diff --git a/launch/launch/actions/execute_local.py b/launch/launch/actions/execute_local.py +index 487ae90..4a9fdb8 100644 +--- a/launch/launch/actions/execute_local.py ++++ b/launch/launch/actions/execute_local.py +@@ -14,6 +14,7 @@ + + """Module for the ExecuteLocal action.""" + ++import sys + import asyncio + import io + import logging +@@ -566,6 +567,10 @@ class ExecuteLocal(Action): + ) + + try: ++ # On Windows, Python scripts cannot be passed directly to CreateProcess(). ++ # Invoke them through the Python interpreter, matching ros2run behavior. ++ if os.name == 'nt' and cmd and cmd[0].lower().endswith('.py'): ++ cmd.insert(0, sys.executable) + transport, self._subprocess_protocol = await async_execute_process( + lambda **kwargs: self.__ProcessProtocol( + self, context, process_event_args, **kwargs \ No newline at end of file diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 77b492990..83f71488e 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -212,6 +212,10 @@ coal: override_version: '3.0.4' # Remove on next full rebuild: bumped so main rebuilds the 3.0.4 dummy build_number: 22 +launch: + build_number: 22 +launch_ros: + build_number: 22 nav2_mppi_controller: build_number: 22 pinocchio: