SDK package versions and voxl-cross container versions
-
I have a Docker-based build pipeline that:
- Inside the
voxl-cross:2.7
container, installs ModalAI packages
DEPS=" libmodal-pipe " PLATFORM=qrb5165 SECTION=sdk-1.4 # Add to /etc/apt/sources.list.d DPKG_FILE="/etc/apt/sources.list.d/modalai.list" LINE="deb [trusted=yes] http://voxl-packages.modalai.com/ ./dists/$PLATFORM/$SECTION/binary-arm64/" sudo echo "${LINE}" > ${DPKG_FILE} ## Update package index sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/modalai.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" ## Install dependencies sudo apt install -y $DEPS
- Inside the same container, builds my application
Over the weekend my build broke due to an incompatibility between the newly released
libmodal-pipe_2.13.1_arm64.deb
(released to the sdk-1.4 apt repository) and the voxl-cross:2.7 build container.My workaround has been to pin the version of the libmodalpipe apt package I install:
libmodal-pipe=2.10.6
.How should I think about versioning guarantees between the SDK version and the voxl-cross container version? Should I expect packages in a given SDK version to continue to build in a given voxl-cross container version? Or is your recommendation to live at the bleeding edge of the voxl-cross container version?
- Inside the
-
@ianjsherman While we are slowly migrating packages to build in a new build environment, the API for libmodal_pipe should not have changed and installing the new binary package in voxl-cross 2.7 into order to build and link against should not have broken. Do you mind sharing what exactly broke in your build as there might have been something that I missed.
-
hmmm, by any chance are you failing to link against symbols from libgmb.so? That is a new library dependency of libmodal_pipe. Most of our packages use the following linker flags to avoid recursive linking, I think this would be a better solution than specifying the libmodal_pipe version in install_build_deps.sh
set(CMAKE_C_FLAGS "-Wl,--unresolved-symbols=ignore-in-shared-libs ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "-Wl,--unresolved-symbols=ignore-in-shared-libs ${CMAKE_CXX_FLAGS}")