Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
0098515
804: change to 7.3.0 packages
lobolanja Mar 31, 2025
e70a7e8
804: Update to 7.3.0 — no patch required.
lobolanja Apr 4, 2025
3916307
804: apply logic to support jazzy and humble, TODO work on ./linux_do…
lobolanja Apr 4, 2025
a838748
804: change to 7.3.0 packages
lobolanja Mar 31, 2025
bda310b
804: Update to 7.3.0 — no patch required.
lobolanja Apr 4, 2025
58cb69a
804: apply logic to support jazzy and humble, TODO work on ./linux_do…
lobolanja Apr 4, 2025
5573142
Comment this out until it works.
nuclearsandwich Apr 5, 2025
2b628fb
More comment.
nuclearsandwich Apr 5, 2025
e1ae728
Update available Connext versions from private submodule.
nuclearsandwich Apr 4, 2025
f2d1a90
Update rticonnextdds-src submodule.
nuclearsandwich Apr 5, 2025
02e0e06
Add 7.3.0 binaries.
nuclearsandwich Apr 5, 2025
6160727
Can't work if you don't uncomment your trash patches guy.
nuclearsandwich Apr 5, 2025
791bdf8
The new files have a different filename.
nuclearsandwich Apr 5, 2025
2991d6a
Merge branch 'feature/804-update-rti-connext' of https://github.com/r…
lobolanja Apr 7, 2025
683cd99
#804: change the special case for jazzy and humble, move back to use …
lobolanja Apr 7, 2025
14623b7
#804: Refactor logic to treat Jazzy and Humble as special cases when …
lobolanja Apr 7, 2025
53bb83e
#804: entry_point.sh Refactor entry_point.sh to install the correct C…
lobolanja Apr 7, 2025
b87e04a
#804: add coment explaining that rti Connext web installers are only …
lobolanja Apr 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "linux_docker_resources/rticonnextdds-src"]
path = linux_docker_resources/rticonnextdds-src
url = git@github.com:osrf/rticonnextdds-bins.git
branch = binaries/linux/amd64/6.0.1
branch = binaries/linux/amd64/omnibus
[submodule "linux_docker_resources/rticonnextdds-license"]
path = linux_docker_resources/rticonnextdds-license
url = git@github.com:osrf/rticonnextdds-license.git
Expand Down
42 changes: 32 additions & 10 deletions linux_docker_resources/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -153,25 +153,44 @@ RUN apt-get update && apt-get install --no-install-recommends -y lcov
# merged use the fork with the fix.
RUN pip3 install -U git+https://github.com/ahcorde/lcov-to-cobertura-xml@master

# Install the Connext binary from the OSRF repositories.
RUN if test \( ${PLATFORM} = x86 -a ${INSTALL_CONNEXT_DEBS} = true \); then apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-6.0.1; fi
# Install the Connext binary from the OSRF repositories. if ROS_DISTRO is humble or jazzy
# install rti-connext-dds-6.0.1 else install rti-connext-dds-7.3.0-ros.
RUN if test \( ${PLATFORM} = x86 -a ${INSTALL_CONNEXT_DEBS} = true \); then \
if test \( ${ROS_DISTRO} = humble -o ${ROS_DISTRO} = jazzy \); then \
apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-6.0.1; \
else \
apt-get update && RTI_NC_LICENSE_ACCEPTED=yes apt-get install -y rti-connext-dds-7.3.0-ros; \
fi; \
fi

# Install the RTI dependencies.
RUN if test ${PLATFORM} = x86; then apt-get update && apt-get install --no-install-recommends -y default-jre-headless; fi

# Install dependencies for RTI web binaries install script.
RUN apt-get update && apt-get install --no-install-recommends -y python3-pexpect

# Get and install the RTI web binaries.
# Connext 6.0.1 for jammy, the evaluation bundles don't contain security extensions so we need to distribute the pro binaries to ourselves.
# Get and install the RTI Connext web binaries.
# RTI Connext web binaries installation is only supported on x86_64.
COPY rticonnextdds-src/ /tmp/rticonnextdds-src
RUN for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; do \

# Join the correct Connext version files based on the value of ROS_DISTRO.
RUN if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \
for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; do \
cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \
done; \
else \
for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-target-x64Linux4gcc7.3.0.rtipkg; do \
cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \
done
RUN chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run
done; \
fi

# Make the RTI Connext installation script executable. For any version of Connext.
RUN chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-*-pro-host-x64Linux.run

# Add the connextdds installation script used in entry_point.sh
ADD rti_web_binaries_install_script.py /tmp/rti_web_binaries_install_script.py
Expand Down Expand Up @@ -226,6 +245,9 @@ RUN apt-get update && apt-get install -y \
RUN update-ccache-symlinks

ENV DISPLAY=:99
# Making the RTI Connext env variable to the entry_point.sh script so that it can be used to run
# the RTI Connext installation script.
ENV ROS_DISTRO=${ROS_DISTRO}

# Create a user to own the build output.
RUN useradd -u 1234 -m rosbuild
Expand Down
32 changes: 22 additions & 10 deletions linux_docker_resources/Dockerfile-RHEL
Original file line number Diff line number Diff line change
Expand Up @@ -185,17 +185,29 @@ RUN dnf install \
python3-pexpect \
--refresh -y

# Get and install the RTI web binaries.
# Connext 6.0.1 for humble and beyond, the evaluation bundles don't contain security extensions so we need to distribute the pro binaries to ourselves.
# Get and install the RTI Connext web binaries.
# RTI Connext web binaries installation is only supported on x86_64.
COPY rticonnextdds-src/ /tmp/rticonnextdds-src
RUN for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; \
do \
cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \
done; \
chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run;

# Join the correct Connext version files based on the value of ROS_DISTRO.
RUN if test ${ROS_DISTRO} = jazzy -o ${ROS_DISTRO} = humble; then \
for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg; do \
cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \
done; \
else \
for splitpkg in \
/tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-host-x64Linux.run \
/tmp/rticonnextdds-src/rti_connext_dds-7.3.0-pro-target-x64Linux4gcc7.3.0.rtipkg; do \
cat $(echo ${splitpkg}.0?? | sort) > $splitpkg; \
done; \
fi

# Make the RTI Connext installation script executable. For any version of Connext.
RUN chmod 755 /tmp/rticonnextdds-src/rti_connext_dds-*-pro-host-x64Linux.run

ADD rti_web_binaries_install_script.py /tmp/rti_web_binaries_install_script.py

# Add the RTI license file.
Expand Down
49 changes: 35 additions & 14 deletions linux_docker_resources/entry_point.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,30 +39,51 @@ if [ "${ARCH}" = "x86_64" -a "${ID}" = "ubuntu" ]; then
# Install RTI Connext DDS if we didn't find 'rmw_connextdds' within the "ignore-rmw" option strings.
if [ -z "${IGNORE_CONNEXTDDS}" ]; then
echo "Installing Connext..."

export CONNEXT_FULL_VERSION="7.3.0"
export CONNEXT_DISPLAY_VERSION="$CONNEXT_FULL_VERSION"
if [ "${ROS_DISTRO}" = "jazzy" ] || [ "${ROS_DISTRO}" = "humble" ]; then
export CONNEXT_FULL_VERSION="6.0.1.25"
export CONNEXT_DISPLAY_VERSION="${CONNEXT_FULL_VERSION%.*}"
fi

case "${CI_ARGS}" in
*--connext-debs*)
echo "Using Debian package of Connext"
if test -r /opt/rti.com/rti_connext_dds-6.0.1/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh; then
echo "Sourcing RTI setenv script /opt/rti.com/rti_connext_dds-6.0.1/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh"
. /opt/rti.com/rti_connext_dds-6.0.1/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh
if test -r /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh; then
echo "Sourcing RTI setenv script /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh"
. /opt/rti.com/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.sh
fi
;;
*)
echo "Installing Connext binaries off RTI website..."
if test -x /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run; then
python3 -u /tmp/rti_web_binaries_install_script.py /tmp/rticonnextdds-src/rti_connext_dds-6.0.1-pro-host-x64Linux.run \
/home/rosbuild/rti_connext_dds-6.0.1 --rtipkg_paths \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_connext_dds-6.0.1.25-pro-target-x64Linux4gcc7.3.0.rtipkg \
/tmp/rticonnextdds-src/openssl-1.1.1k-6.0.1.25-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-6.0.1.25-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-6.0.1.25-target-x64Linux4gcc7.3.0.rtipkg
if test -x /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}-pro-host-x64Linux.run; then
rtipkg_list="\
/tmp/rticonnextdds-src/openssl-3.0.12-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/openssl-3.0.12-${CONNEXT_FULL_VERSION}-target-x64Linux4gcc7.3.0.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-host-openssl-3.0-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-openssl-3.0-x64Linux4gcc7.3.0.rtipkg \
"
connext_base_architecture="x64Linux3gcc4.8.2"
if [ "${CONNEXT_FULL_VERSION}" = "6.0.1.25" ]; then
rtipkg_list="\
/tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_FULL_VERSION}-pro-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/openssl-1.1.1k-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-host-x64Linux.rtipkg \
/tmp/rticonnextdds-src/rti_security_plugins-${CONNEXT_FULL_VERSION}-target-x64Linux4gcc7.3.0.rtipkg \
"
connext_base_architecture="x64Linux2.6gcc4.4.5"
fi
python3 -u /tmp/rti_web_binaries_install_script.py /tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}-pro-host-x64Linux.run \
/home/rosbuild/rti_connext_dds-${CONNEXT_DISPLAY_VERSION} --rtipkg_paths \
/tmp/rticonnextdds-src/rti_connext_dds-${CONNEXT_FULL_VERSION}-pro-target-x64Linux4gcc7.3.0.rtipkg \
$rtipkg_list
if [ $? -ne 0 ]; then
echo "Connext not installed correctly (maybe you're on an ARM machine?)." >&2
exit 1
fi
export CONNEXTDDS_DIR=/home/rosbuild/rti_connext_dds-6.0.1
export RTI_OPENSSL_LIBS=$CONNEXTDDS_DIR/resource/app/lib/x64Linux2.6gcc4.4.5
export CONNEXTDDS_DIR=/home/rosbuild/rti_connext_dds-${CONNEXT_DISPLAY_VERSION}
export RTI_OPENSSL_LIBS=$CONNEXTDDS_DIR/resource/app/lib/${connext_base_architecture}
else
echo "No connext installation files found found." >&2
exit 1
Expand All @@ -84,4 +105,4 @@ sed -i -e "s/rosbuild:x:$ORIG_GID:/rosbuild:x:$GID:/" /etc/group
chown -R ${UID}:${GID} "${ORIG_HOME}"
echo "done."

exec sudo -H -u rosbuild -E -- xvfb-run -s "-ac -screen 0 1280x1024x24" /bin/sh -c "$*"
exec sudo -H -u rosbuild -E -- xvfb-run -s "-ac -screen 0 1280x1024x24" /bin/sh -c "$*"
2 changes: 1 addition & 1 deletion linux_docker_resources/rticonnextdds-src
22 changes: 11 additions & 11 deletions windows_docker_resources/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -43,24 +43,24 @@ RUN pixi --color never --no-progress -q list

# Setup environment variables needed for Connext
ENV RTI_LICENSE_FILE C:\connext\rti_license.dat
ENV CONNEXTDDS_DIR C:\connext\rti_connext_dds-6.0.1
ENV RTI_OPENSSL_BIN C:\connext\openssl-1.1.1k\x64Win64VS2017\bin
ENV RTI_OPENSSL_LIB C:\connext\openssl-1.1.1k\x64Win64VS2017\lib
ENV CONNEXTDDS_DIR C:\connext\rti_connext_dds-7.3.0
ENV RTI_OPENSSL_BIN C:\connext\openssl-3.0.12\x64Win64VS2017\bin
ENV RTI_OPENSSL_LIB C:\connext\openssl-3.0.12\x64Win64VS2017\lib

# Copy over necessary Connext files into container
RUN IF NOT EXIST "C:\TEMP" mkdir C:\TEMP
COPY rticonnextdds-src\ C:\TEMP\rticonnextdds-src
RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-host-x64Win64.exe.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-host-x64Win64.exe
RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-target-x64Win64VS2017.rtipkg.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-target-x64Win64VS2017.rtipkg
RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe
RUN copy /b C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg.??? C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg
COPY rticonnextdds-license\rti_license.dat $RTI_LICENSE_FILE

# Install Connext
RUN pixi run 7z x -oC:\connext C:\TEMP\rticonnextdds-src\openssl-1.1.1k-target-x64Win64VS2017.zip
RUN C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-host-x64Win64.exe --mode unattended --unattendedmodeui minimalWithDialogs --prefix C:\connext
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-1.1.1k-6.0.1.25-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_connext_dds-6.0.1-pro-target-x64Win64VS2017.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-6.0.1.25-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-6.0.1.25-target-x64Win64VS2017.rtipkg
RUN C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-host-x64Win64.exe --mode unattended --unattendedmodeui minimalWithDialogs --prefix C:\connext
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\openssl-3.0.12-7.3.0-target-x64Win64VS2017.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_connext_dds-7.3.0-pro-target-x64Win64VS2017.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-host-x64Win64.rtipkg
RUN %CONNEXTDDS_DIR%\bin\rtipkginstall.bat -u C:\TEMP\rticonnextdds-src\rti_security_plugins-7.3.0-target-x64Win64VS2017.rtipkg

# Note that this *must* be in shell form, not exec form, so Docker on Windows appropriately substitutes %CI_ARGS%
WORKDIR C:\ci
Expand Down
2 changes: 1 addition & 1 deletion windows_docker_resources/rticonnextdds-src