Version of ROS package dependencies
Solution to issue cannot be found in the documentation.
- [X] I checked the documentation.
Issue
Dear maintainers, ROS packages typically link against their dependencies using a soname that includes the whole version number down to the patch version.
Example (truncated):
(conda_test_env) alaurenzi@alaurenzi-iit-desktop:~/mambaforge/envs/conda_test_env $ readelf -d lib/libmoveit_collision_detection.so
Dynamic section at offset 0x63208 contains 38 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libgeometric_shapes.so.0.7.3]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libclass_loader.so]
0x0000000000000001 (NEEDED) Shared library: [libconsole_bridge.so.1.0]
0x0000000000000001 (NEEDED) Shared library: [librosconsole.so]
0x0000000000000001 (NEEDED) Shared library: [librostime.so]
0x0000000000000001 (NEEDED) Shared library: [libroslib.so]
0x0000000000000001 (NEEDED) Shared library: [libboost_filesystem.so.1.78.0]
0x0000000000000001 (NEEDED) Shared library: [libtinyxml2.so.9]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libmoveit_collision_detection.so.1.1.11]
0x000000000000000f (RPATH) Library rpath: [$ORIGIN/.]
Notice here, for instance, the requirement for libgeometric_shapes.so.0.7.3.
However, when listing the dependencies of ros-noetic-moveit-core (which provides the above library), I see no version requirements at all in any of the ros package dependencies.
(conda_test_env) alaurenzi@alaurenzi-iit-desktop:~/mambaforge/envs/conda_test_env $ cat conda-meta/ros-noetic-moveit-core-1.1.11-py39h3fca0de_15.json
{
"build": "py39h3fca0de_15",
"build_number": 15,
"channel": "https://conda.anaconda.org/robostack-staging/linux-64",
"constrains": [],
"depends": [
"python",
"ros-noetic-std-msgs",
"ros-noetic-geometry-msgs",
"ros-noetic-sensor-msgs",
"eigen",
"ros-noetic-pluginlib",
"ros-noetic-rosconsole",
"ros-noetic-roslib",
"ros-noetic-visualization-msgs",
"ros-noetic-urdf",
"ros-noetic-tf2-geometry-msgs",
"ros-noetic-tf2-eigen",
"ros-noetic-rostime",
"ros-noetic-trajectory-msgs",
"ros-noetic-moveit-msgs",
"ros-noetic-xmlrpcpp",
"ros-noetic-octomap",
"ros-noetic-shape-msgs",
"ros-noetic-geometric-shapes",
"ros-noetic-kdl-parser",
"urdfdom_headers",
"bullet",
"ros-noetic-eigen-stl-containers",
"ros-noetic-octomap-msgs",
"ros-noetic-fcl",
"ros-noetic-random-numbers",
"ros-noetic-srdfdom",
"ros-noetic-pybind11-catkin",
"ros-noetic-ruckig",
"libgcc-ng >=12",
"libstdcxx-ng >=12",
"python_abi 3.9.* *_cp39",
"ros-distro-mutex 0.4.* noetic",
"ros-distro-mutex 0.4.*",
"numpy >=1.20.3,<2.0a0",
"boost >=1.78.0,<1.78.1.0a0",
"console_bridge >=1.0.2,<1.1.0a0",
"orocos-kdl >=1.5.1,<1.6.0a0",
"assimp >=5.2.5,<5.2.6.0a0",
"urdfdom >=3.1.0,<3.2.0a0"
],
Indeed, it has happened to me that the mamba solver would generate an environment with a ros-noetic-moveit-core requiring ros-noetic-geometric-shapes==0.7.3, but having ros-noetic-geometric-shapes==0.7.5 installed. This of course leads to runtime link errors.
Now it is unfortunately not immediately possible for me to provide an MRE as it involves custom packages that I'm building and hosting on a local channel. This is more to understand what is the mechanism that should enforce correct versions. There could be a problem in my recipes that causes this behavior.
Thanks for your insight. I'll work towards an MRE if required.
Installed packages
# packages in environment at /home/alaurenzi/mambaforge/envs/conda_test_env:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
adwaita-icon-theme 43 unix_0 conda-forge
aiohttp 3.9.1 py39hd1e30aa_0 conda-forge
aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge
alsa-lib 1.2.8 h166bdaf_0 conda-forge
aom 3.5.0 h27087fc_0 conda-forge
apr 1.7.0 h7f98852_5 conda-forge
assimp 5.2.5 hf40c2ba_0 conda-forge
async-timeout 4.0.3 pyhd8ed1ab_0 conda-forge
atk-1.0 2.38.0 hd4edc92_1 conda-forge
attr 2.5.1 h166bdaf_1 conda-forge
attrs 23.2.0 pyh71513ae_0 conda-forge
bcrypt 4.1.2 py39h9fdd4d6_0 conda-forge
blosc 1.21.5 h0f2a231_0 conda-forge
boost 1.78.0 py39hda80f44_5 conda-forge
boost-cpp 1.78.0 h5adbc97_2 conda-forge
brotli 1.1.0 hd590300_1 conda-forge
brotli-bin 1.1.0 hd590300_1 conda-forge
bullet 3.21 hcca971b_4 conda-forge
bullet-cpp 3.21 h4661b88_4 conda-forge
bzip2 1.0.8 hd590300_5 conda-forge
c-ares 1.25.0 hd590300_0 conda-forge
ca-certificates 2023.11.17 hbcca054_0 conda-forge
cairo 1.16.0 ha61ee94_1014 conda-forge
cartesian-interface 2.1.0 hbd3e394_1 iit_hhcm
catkin_pkg 1.0.0 pyhd8ed1ab_0 conda-forge
certifi 2023.11.17 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 py39h7a31438_0 conda-forge
cfitsio 4.2.0 hd9d235c_0 conda-forge
cmake 3.26.3 h077f3f9_0 conda-forge
console_bridge 1.0.2 h924138e_1 conda-forge
contourpy 1.2.0 py39h7633fee_0 conda-forge
cppzmq 4.10.0 h2e2a08d_1 conda-forge
cryptography 41.0.7 py39he6105cc_1 conda-forge
curl 7.88.1 hdc1c0ab_1 conda-forge
cycler 0.12.1 pyhd8ed1ab_0 conda-forge
dartsim 6.12.2 h0a4c592_3 conda-forge
dbus 1.13.6 h5008d03_3 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
distro 1.9.0 pyhd8ed1ab_0 conda-forge
docutils 0.20.1 py39hf3d152e_3 conda-forge
double-conversion 3.2.0 h27087fc_1 conda-forge
eigen 3.4.0 h00ab1b0_0 conda-forge
empy 3.3.4 pyh9f0ad1d_1 conda-forge
expat 2.5.0 hcb278e6_1 conda-forge
fcl 0.7.0 hdb826dc_3 conda-forge
ffmpeg 5.1.2 gpl_h8dda1f0_106 conda-forge
fftw 3.3.10 nompi_hc118613_108 conda-forge
flann 1.9.1 he05ef13_1011 conda-forge
font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge
font-ttf-inconsolata 3.000 h77eed37_0 conda-forge
font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge
font-ttf-ubuntu 0.83 h77eed37_1 conda-forge
fontconfig 2.14.2 h14ed4e7_0 conda-forge
fonts-conda-ecosystem 1 0 conda-forge
fonts-conda-forge 1 0 conda-forge
fonttools 4.47.2 py39hd1e30aa_0 conda-forge
freeglut 3.2.2 h9c3ff4c_1 conda-forge
freeimage 3.18.0 h530e30e_10 conda-forge
freetype 2.12.1 h267a509_2 conda-forge
freexl 1.0.6 h166bdaf_1 conda-forge
fribidi 1.0.10 h36c2ea0_0 conda-forge
frozenlist 1.4.1 py39hd1e30aa_0 conda-forge
gazebo 11.12.0 h151eb85_5 conda-forge
gdbm 1.18 h0a1914f_2 conda-forge
gdk-pixbuf 2.42.8 hff1cb4f_1 conda-forge
geos 3.11.1 h27087fc_0 conda-forge
geotiff 1.7.1 ha76d385_4 conda-forge
gettext 0.21.1 h27087fc_0 conda-forge
giflib 5.2.1 h0b41bf4_3 conda-forge
gl2ps 1.4.2 h0708190_0 conda-forge
glew 2.1.0 h9c3ff4c_2 conda-forge
glib 2.78.1 hfc55251_0 conda-forge
glib-tools 2.78.1 hfc55251_0 conda-forge
gmock 1.14.0 ha770c72_1 conda-forge
gmp 6.3.0 h59595ed_0 conda-forge
gnutls 3.7.9 hb077bed_0 conda-forge
gpgme 1.18.0 h27087fc_0 conda-forge
graphite2 1.3.13 h58526e2_1001 conda-forge
graphviz 6.0.2 h99bc08f_0 conda-forge
gst-plugins-base 1.22.0 h4243ec0_2 conda-forge
gstreamer 1.22.0 h25f0c4b_2 conda-forge
gstreamer-orc 0.4.34 hd590300_0 conda-forge
gtest 1.14.0 h00ab1b0_1 conda-forge
gtk2 2.24.33 h90689f9_2 conda-forge
gts 0.7.6 h977cf35_4 conda-forge
harfbuzz 6.0.0 h8e241bc_0 conda-forge
hdf4 4.2.15 h9772cbc_5 conda-forge
hdf5 1.12.2 nompi_h4df4325_101 conda-forge
hicolor-icon-theme 0.17 ha770c72_2 conda-forge
icu 70.1 h27087fc_0 conda-forge
idna 3.6 pyhd8ed1ab_0 conda-forge
iit-centauro-ros-pkg 2.0.0 hbd3e394_1 iit_hhcm
imath 3.1.6 h6239696_1 conda-forge
importlib-resources 6.1.1 pyhd8ed1ab_0 conda-forge
importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge
jack 1.9.22 h11f4161_0 conda-forge
jasper 2.0.33 h0ff4b12_1 conda-forge
jpeg 9e h0b41bf4_3 conda-forge
json-c 0.16 hc379101_0 conda-forge
jsoncpp 1.9.5 h4bd325d_1 conda-forge
jxrlib 1.1 hd590300_3 conda-forge
kealib 1.5.0 ha7026e8_0 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
kiwisolver 1.4.5 py39h7633fee_1 conda-forge
krb5 1.20.1 h81ceb04_0 conda-forge
lame 3.100 h166bdaf_1003 conda-forge
lcms2 2.14 h6ed2654_0 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
lerc 4.0.0 h27087fc_0 conda-forge
libabseil 20230125.3 cxx17_h59595ed_0 conda-forge
libaec 1.1.2 h59595ed_1 conda-forge
libapr 1.7.0 h7f98852_5 conda-forge
libapriconv 1.2.2 h7f98852_5 conda-forge
libaprutil 1.6.1 h975c496_5 conda-forge
libassuan 2.5.6 h59595ed_0 conda-forge
libblas 3.9.0 21_linux64_openblas conda-forge
libbrotlicommon 1.1.0 hd590300_1 conda-forge
libbrotlidec 1.1.0 hd590300_1 conda-forge
libbrotlienc 1.1.0 hd590300_1 conda-forge
libcap 2.67 he9d0100_0 conda-forge
libcblas 3.9.0 21_linux64_openblas conda-forge
libccd-double 2.1 h59595ed_3 conda-forge
libclang 15.0.7 default_hb11cfb5_4 conda-forge
libclang13 15.0.7 default_ha2b6cf4_4 conda-forge
libcups 2.3.3 h36d4200_3 conda-forge
libcurl 7.88.1 hdc1c0ab_1 conda-forge
libdb 6.2.32 h9c3ff4c_0 conda-forge
libdeflate 1.14 h166bdaf_0 conda-forge
libdrm 2.4.114 h166bdaf_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 hd590300_2 conda-forge
libevent 2.1.10 h28343ad_4 conda-forge
libexpat 2.5.0 hcb278e6_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libflac 1.4.3 h59595ed_0 conda-forge
libgcc-ng 13.2.0 h807b86a_3 conda-forge
libgcrypt 1.10.3 hd590300_0 conda-forge
libgd 2.3.3 h18fbbfe_3 conda-forge
libgdal 3.6.1 hf2b5f72_1 conda-forge
libgfortran-ng 13.2.0 h69a702a_3 conda-forge
libgfortran5 13.2.0 ha4646dd_3 conda-forge
libglib 2.78.1 hebfc3b9_0 conda-forge
libglu 9.0.0 he1b5a44_1001 conda-forge
libgomp 13.2.0 h807b86a_3 conda-forge
libgpg-error 1.47 h71f35ed_0 conda-forge
libhwloc 2.9.1 hd6dc26d_0 conda-forge
libiconv 1.17 hd590300_2 conda-forge
libidn2 2.3.4 h166bdaf_0 conda-forge
libignition-cmake2 2.16.0 hcb278e6_1 conda-forge
libignition-common3 3.15.1 hedc608d_2 conda-forge
libignition-fuel-tools4 4.6.0 h08d22d4_0 conda-forge
libignition-math6 6.15.1 py39he9631a7_1 conda-forge
libignition-msgs5 5.11.0 haf0fa91_1 conda-forge
libignition-tools1 1.5.0 h1caa08d_3 conda-forge
libignition-transport8 8.4.0 h87fd66a_3 conda-forge
libkml 1.3.0 h01aab08_1016 conda-forge
liblapack 3.9.0 21_linux64_openblas conda-forge
liblapacke 3.9.0 21_linux64_openblas conda-forge
libllvm15 15.0.7 hadd5161_1 conda-forge
libnetcdf 4.8.1 nompi_h261ec11_106 conda-forge
libnghttp2 1.58.0 h47da74e_0 conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libode 0.16.2 h3d6467e_12 conda-forge
libogg 1.3.4 h7f98852_1 conda-forge
libopenblas 0.3.26 pthreads_h413a1c8_0 conda-forge
libopencv 4.6.0 py39hbc3ed98_8 conda-forge
libopus 1.3.1 h7f98852_1 conda-forge
libpciaccess 0.17 h166bdaf_0 conda-forge
libpng 1.6.39 h753d276_0 conda-forge
libpq 15.2 hb675445_0 conda-forge
libprotobuf 3.21.12 hfc55251_2 conda-forge
libraw 0.20.2 h9772cbc_2 conda-forge
librsvg 2.54.4 h7abd40a_0 conda-forge
librttopo 1.1.0 ha49c73b_12 conda-forge
libsdformat 9.8.0 h5809292_5 conda-forge
libsndfile 1.2.2 hc60ed4a_1 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libspatialite 5.0.1 h7c8129e_22 conda-forge
libsqlite 3.44.2 h2797004_0 conda-forge
libssh2 1.11.0 h0841786_0 conda-forge
libstdcxx-ng 13.2.0 h7e041cc_3 conda-forge
libsystemd0 253 h8c4010b_1 conda-forge
libtar 1.2.20 h7f98852_1004 conda-forge
libtasn1 4.19.0 h166bdaf_0 conda-forge
libtheora 1.1.1 h7f98852_1005 conda-forge
libtiff 4.4.0 h82bc61c_5 conda-forge
libtool 2.4.7 h27087fc_0 conda-forge
libudev1 253 h0b41bf4_1 conda-forge
libunistring 0.9.10 h7f98852_0 conda-forge
libusb 1.0.26 h0b4f0b6_100 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libuv 1.46.0 hd590300_0 conda-forge
libva 2.18.0 h0b41bf4_0 conda-forge
libvorbis 1.3.7 h9c3ff4c_0 conda-forge
libvpx 1.11.0 h9c3ff4c_3 conda-forge
libwebp 1.2.4 h522a892_0 conda-forge
libwebp-base 1.2.4 h166bdaf_0 conda-forge
libxcb 1.13 h7f98852_1004 conda-forge
libxkbcommon 1.5.0 h79f4944_1 conda-forge
libxml2 2.10.3 hca2bb57_4 conda-forge
libzip 1.10.1 h2629f0a_3 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
log4cxx 0.11.0 h1302424_4 conda-forge
loguru 0.7.2 py39hf3d152e_1 conda-forge
lz4 4.3.3 py39h79d96da_0 conda-forge
lz4-c 1.9.4 hcb278e6_0 conda-forge
matlogger2 1.4.0 py39h0de9f5f_1 iit_hhcm
matplotlib-base 3.8.2 py39he9076e7_0 conda-forge
modelinterfacerbdl 1.1.10 hbd3e394_1 iit_hhcm
mpg123 1.32.4 h59595ed_0 conda-forge
multidict 6.0.4 py39hd1e30aa_1 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
mysql-common 8.0.33 hf1915f5_6 conda-forge
mysql-libs 8.0.33 hca2cd23_6 conda-forge
ncurses 6.4 h59595ed_2 conda-forge
netifaces 0.11.0 py39hd1e30aa_2 conda-forge
nettle 3.9.1 h7ab15ed_0 conda-forge
nlohmann_json 3.11.2 h27087fc_0 conda-forge
nose 1.3.7 py_1006 conda-forge
nspr 4.35 h27087fc_0 conda-forge
nss 3.97 h1d7d5a4_0 conda-forge
numpy 1.26.3 py39h474f0d3_0 conda-forge
octomap 1.9.8 h924138e_0 conda-forge
ogre 1.10.12 h7cc4a1d_10 conda-forge
openal-soft 1.22.2 h00ab1b0_0 conda-forge
openexr 3.1.5 h0cdce71_2 conda-forge
openh264 2.3.1 hcb278e6_2 conda-forge
openjpeg 2.5.0 h7d73246_1 conda-forge
opensot 3.3.0 py39h079e4ff_1 iit_hhcm
openssl 3.1.4 hd590300_0 conda-forge
orocos-kdl 1.5.1 h59595ed_5 conda-forge
p11-kit 0.24.1 hc5aa10d_0 conda-forge
packaging 23.2 pyhd8ed1ab_0 conda-forge
pango 1.50.14 hd33c08f_0 conda-forge
paramiko 3.4.0 pyhd8ed1ab_0 conda-forge
pcl 1.12.1 he8b3650_4 conda-forge
pcre2 10.40 hc3806b6_0 conda-forge
pillow 9.2.0 py39hf3a2cdf_3 conda-forge
pip 23.3.2 pyhd8ed1ab_0 conda-forge
pixman 0.43.0 h59595ed_0 conda-forge
pkg-config 0.29.2 h36c2ea0_1008 conda-forge
ply 3.11 py_1 conda-forge
poco 1.12.4 h08a2579_0 conda-forge
poppler 22.12.0 h92391eb_0 conda-forge
poppler-data 0.4.12 hd8ed1ab_0 conda-forge
postgresql 15.2 h3248436_0 conda-forge
proj 9.1.0 h93bde94_0 conda-forge
psutil 5.9.8 py39hd1e30aa_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
pugixml 1.11.4 h59595ed_1 conda-forge
pulseaudio 16.1 hcb278e6_3 conda-forge
pulseaudio-client 16.1 h5195f5e_3 conda-forge
pulseaudio-daemon 16.1 ha8d29e2_3 conda-forge
py-opencv 4.6.0 py39hcca971b_8 conda-forge
pybind11 2.11.1 py39h7633fee_2 conda-forge
pybind11-abi 4 hd8ed1ab_3 conda-forge
pybind11-global 2.11.1 py39h7633fee_2 conda-forge
pybullet 3.21 py39h4661b88_4 conda-forge
pycairo 1.25.0 py39hc92de75_1 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pycryptodome 3.20.0 py39h6f9bf71_0 conda-forge
pycryptodomex 3.19.0 py39hd1e30aa_1 conda-forge
pydot 2.0.0 py39hf3d152e_0 conda-forge
pynacl 1.5.0 py39hd1e30aa_3 conda-forge
pyopengl 3.1.6 pyhd8ed1ab_1 conda-forge
pyparsing 3.1.1 pyhd8ed1ab_0 conda-forge
pyqt 5.15.9 py39h52134e7_5 conda-forge
pyqt-builder 1.15.4 pyhd8ed1ab_0 conda-forge
pyqt5-sip 12.12.2 py39h3d6467e_5 conda-forge
pyqtwebengine 5.15.9 py39h071a739_5 conda-forge
python 3.9.18 h0755675_0_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-gnupg 0.5.0 pyhd8ed1ab_0 conda-forge
python-orocos-kdl 1.5.1 py39h3d6467e_5 conda-forge
python_abi 3.9 4_cp39 conda-forge
pyyaml 6.0.1 py39hd1e30aa_1 conda-forge
qhull 2020.2 h4bd325d_2 conda-forge
qt-main 5.15.8 h5d23da1_6 conda-forge
qt-webengine 5.15.8 h77d6d84_0 conda-forge
qwt 6.2.0 h1a478b3_6 conda-forge
readline 8.2 h8228510_1 conda-forge
rhash 1.4.3 hd590300_2 conda-forge
robotinterfaceros 1.2.0 hbd3e394_1 iit_hhcm
ros-distro-mutex 0.4.0 noetic robostack-staging
ros-noetic-actionlib 1.14.0 py39h873cbd0_16 robostack-staging
ros-noetic-actionlib-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-actionlib-tutorials 0.2.0 py39hac30774_15 robostack-staging
ros-noetic-angles 1.9.13 py39hac30774_15 robostack-staging
ros-noetic-bond 1.8.6 py39hac30774_15 robostack-staging
ros-noetic-bond-core 1.8.6 py39hac30774_15 robostack-staging
ros-noetic-bondcpp 1.8.6 py39hdfadedc_15 robostack-staging
ros-noetic-bondpy 1.8.6 py39hac30774_15 robostack-staging
ros-noetic-camera-calibration 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-camera-calibration-parsers 1.12.0 py39hd1c2957_15 robostack-staging
ros-noetic-camera-info-manager 1.12.0 py39hd1c2957_15 robostack-staging
ros-noetic-catkin 0.8.10 py39hac30774_15 robostack-staging
ros-noetic-class-loader 0.5.0 py39hd72fd0a_15 robostack-staging
ros-noetic-cmake-modules 0.5.0 py39hac30774_15 robostack-staging
ros-noetic-common-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-common-tutorials 0.2.0 py39hac30774_15 robostack-staging
ros-noetic-compressed-depth-image-transport 1.14.0 py39hac30774_15 robostack-staging
ros-noetic-compressed-image-transport 1.14.0 py39hac30774_15 robostack-staging
ros-noetic-control-msgs 1.5.2 py39hac30774_15 robostack-staging
ros-noetic-control-toolbox 1.19.0 py39hac30774_15 robostack-staging
ros-noetic-controller-interface 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-controller-manager 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-controller-manager-msgs 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-cpp-common 0.7.2 py39hc1d770b_15 robostack-staging
ros-noetic-cv-bridge 1.16.2 py39h24ef43d_15 robostack-staging
ros-noetic-depth-image-proc 1.17.0 py39hd1c2957_15 robostack-staging
ros-noetic-desktop 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-desktop-full 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-diagnostic-aggregator 1.11.0 py39hadd303b_16 robostack-staging
ros-noetic-diagnostic-analysis 1.11.0 py39hac30774_15 robostack-staging
ros-noetic-diagnostic-common-diagnostics 1.11.0 py39hac30774_15 robostack-staging
ros-noetic-diagnostic-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-diagnostic-updater 1.11.0 py39hac30774_15 robostack-staging
ros-noetic-diagnostics 1.11.0 py39hac30774_15 robostack-staging
ros-noetic-diff-drive-controller 0.21.0 py39hd1c2957_15 robostack-staging
ros-noetic-dynamic-reconfigure 1.7.3 py39h873cbd0_15 robostack-staging
ros-noetic-eigen-conversions 1.13.2 py39hac30774_15 robostack-staging
ros-noetic-eigen-stl-containers 0.1.8 py39hac30774_15 robostack-staging
ros-noetic-executive-smach 2.5.0 py39hac30774_15 robostack-staging
ros-noetic-fcl 0.6.1 py39hac30774_15 robostack-staging
ros-noetic-filters 1.9.2 py39h873cbd0_15 robostack-staging
ros-noetic-forward-command-controller 0.21.0 py39hac30774_15 robostack-staging
ros-noetic-gazebo-dev 2.9.2 py39h6e73cb5_15 robostack-staging
ros-noetic-gazebo-msgs 2.9.2 py39hac30774_15 robostack-staging
ros-noetic-gazebo-plugins 2.9.2 py39hd1a2550_15 robostack-staging
ros-noetic-gazebo-ros 2.9.2 py39h66bfe64_16 robostack-staging
ros-noetic-gazebo-ros-control 2.9.2 py39h67aadc1_15 robostack-staging
ros-noetic-gazebo-ros-pkgs 2.9.2 py39hac30774_15 robostack-staging
ros-noetic-gencpp 0.7.0 py39hac30774_15 robostack-staging
ros-noetic-geneus 3.0.0 py39hac30774_15 robostack-staging
ros-noetic-genlisp 0.4.18 py39hac30774_15 robostack-staging
ros-noetic-genmsg 0.6.0 py39hac30774_15 robostack-staging
ros-noetic-gennodejs 2.0.2 py39hac30774_15 robostack-staging
ros-noetic-genpy 0.6.15 py39hac30774_15 robostack-staging
ros-noetic-geometric-shapes 0.7.5 py39h36a639c_16 robostack-staging
ros-noetic-geometry 1.13.2 py39hac30774_15 robostack-staging
ros-noetic-geometry-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-geometry-tutorials 0.2.3 py39hac30774_15 robostack-staging
ros-noetic-gl-dependency 1.1.2 py39hac30774_15 robostack-staging
ros-noetic-hardware-interface 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-image-common 1.12.0 py39hac30774_15 robostack-staging
ros-noetic-image-geometry 1.16.2 py39hc401949_15 robostack-staging
ros-noetic-image-pipeline 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-image-proc 1.17.0 py39hd1c2957_15 robostack-staging
ros-noetic-image-publisher 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-image-rotate 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-image-transport 1.12.0 py39hac30774_15 robostack-staging
ros-noetic-image-transport-plugins 1.14.0 py39hac30774_15 robostack-staging
ros-noetic-image-view 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-interactive-marker-tutorials 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-interactive-markers 1.12.0 py39hac30774_15 robostack-staging
ros-noetic-joint-limits-interface 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-joint-state-controller 0.21.0 py39hac30774_15 robostack-staging
ros-noetic-joint-state-publisher 1.15.1 py39hac30774_15 robostack-staging
ros-noetic-joint-state-publisher-gui 1.15.1 py39hac30774_15 robostack-staging
ros-noetic-kdl-conversions 1.13.2 py39hac30774_15 robostack-staging
ros-noetic-kdl-parser 1.14.2 py39h6a0d14d_15 robostack-staging
ros-noetic-laser-assembler 1.7.8 py39hac30774_15 robostack-staging
ros-noetic-laser-filters 1.9.0 py39hac30774_15 robostack-staging
ros-noetic-laser-geometry 1.6.7 py39hd1c2957_15 robostack-staging
ros-noetic-laser-pipeline 1.6.4 py39hac30774_15 robostack-staging
ros-noetic-librviz-tutorial 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-map-msgs 1.14.1 py39hac30774_15 robostack-staging
ros-noetic-media-export 0.3.0 py39hac30774_15 robostack-staging
ros-noetic-message-filters 1.15.15 py39h873cbd0_15 robostack-staging
ros-noetic-message-generation 0.4.1 py39hac30774_15 robostack-staging
ros-noetic-message-runtime 0.4.13 py39hac30774_15 robostack-staging
ros-noetic-mk 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-moveit-core 1.1.11 py39h3fca0de_15 robostack-staging
ros-noetic-moveit-msgs 0.11.4 py39hac30774_15 robostack-staging
ros-noetic-nav-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-nodelet 1.10.2 py39h4420ab6_16 robostack-staging
ros-noetic-nodelet-core 1.10.2 py39hac30774_15 robostack-staging
ros-noetic-nodelet-topic-tools 1.10.2 py39hd1c2957_15 robostack-staging
ros-noetic-nodelet-tutorial-math 0.2.0 py39hac30774_15 robostack-staging
ros-noetic-object-recognition-msgs 0.4.2 py39hac30774_15 robostack-staging
ros-noetic-octomap 1.9.8 py39hac30774_15 robostack-staging
ros-noetic-octomap-msgs 0.3.5 py39hac30774_15 robostack-staging
ros-noetic-pcl-conversions 1.7.4 py39h7e6a3dc_15 robostack-staging
ros-noetic-pcl-msgs 0.3.0 py39hac30774_15 robostack-staging
ros-noetic-pcl-ros 1.7.4 py39h7e6a3dc_15 robostack-staging
ros-noetic-perception 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-perception-pcl 1.7.4 py39hac30774_15 robostack-staging
ros-noetic-pluginlib 1.13.0 py39h7534eef_16 robostack-staging
ros-noetic-pluginlib-tutorials 0.2.0 py39ha182ace_15 robostack-staging
ros-noetic-polled-camera 1.12.0 py39hac30774_15 robostack-staging
ros-noetic-position-controllers 0.21.0 py39hac30774_15 robostack-staging
ros-noetic-pybind11-catkin 2.5.0 py39hac30774_15 robostack-staging
ros-noetic-python-qt-binding 0.4.4 py39hac30774_15 robostack-staging
ros-noetic-qt-dotgraph 0.4.2 py39hac30774_15 robostack-staging
ros-noetic-qt-gui 0.4.2 py39hac30774_15 robostack-staging
ros-noetic-qt-gui-cpp 0.4.2 py39ha182ace_15 robostack-staging
ros-noetic-qt-gui-py-common 0.4.2 py39hac30774_15 robostack-staging
ros-noetic-qwt-dependency 1.1.1 py39hac30774_15 robostack-staging
ros-noetic-random-numbers 0.3.2 py39hd1c2957_15 robostack-staging
ros-noetic-realtime-tools 1.16.1 py39hac30774_15 robostack-staging
ros-noetic-resource-retriever 1.12.7 py39he143d7c_15 robostack-staging
ros-noetic-robot 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-robot-state-publisher 1.15.2 py39hac30774_15 robostack-staging
ros-noetic-ros 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-ros-base 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-ros-comm 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-ros-core 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-ros-environment 1.3.2 py39hac30774_15 robostack-staging
ros-noetic-ros-tutorials 0.10.2 py39hac30774_15 robostack-staging
ros-noetic-rosbag 1.16.0 py39h873cbd0_16 robostack-staging
ros-noetic-rosbag-migration-rule 1.0.1 py39hac30774_15 robostack-staging
ros-noetic-rosbag-storage 1.16.0 py39hbd60425_15 robostack-staging
ros-noetic-rosbash 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosboost-cfg 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosbuild 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosclean 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosconsole 1.14.3 py39hc7694d4_16 robostack-staging
ros-noetic-rosconsole-bridge 0.5.4 py39ha661dd0_15 robostack-staging
ros-noetic-roscpp 1.15.15 py39h873cbd0_15 robostack-staging
ros-noetic-roscpp-core 0.7.2 py39hac30774_15 robostack-staging
ros-noetic-roscpp-serialization 0.7.2 py39hac30774_15 robostack-staging
ros-noetic-roscpp-traits 0.7.2 py39hac30774_15 robostack-staging
ros-noetic-roscpp-tutorials 0.10.2 py39h873cbd0_15 robostack-staging
ros-noetic-roscreate 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosgraph 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosgraph-msgs 1.11.3 py39hac30774_15 robostack-staging
ros-noetic-roslang 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-roslaunch 1.16.0 py39hac30774_16 robostack-staging
ros-noetic-roslib 1.15.8 py39h873cbd0_16 robostack-staging
ros-noetic-roslint 0.12.0 py39hadd303b_16 robostack-staging
ros-noetic-roslisp 1.9.24 py39hac30774_15 robostack-staging
ros-noetic-roslz4 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosmake 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-rosmaster 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosmsg 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosnode 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosout 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rospack 2.6.2 py39h7534eef_15 robostack-staging
ros-noetic-rosparam 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rospy 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rospy-tutorials 0.10.2 py39hac30774_15 robostack-staging
ros-noetic-rosservice 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rostest 1.15.15 py39h873cbd0_15 robostack-staging
ros-noetic-rostime 0.7.2 py39h873cbd0_15 robostack-staging
ros-noetic-rostopic 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-rosunit 1.15.8 py39hac30774_15 robostack-staging
ros-noetic-roswtf 1.16.0 py39hadd303b_16 robostack-staging
ros-noetic-rqt-action 0.4.9 py39hac30774_15 robostack-staging
ros-noetic-rqt-bag 0.5.1 py39hac30774_15 robostack-staging
ros-noetic-rqt-bag-plugins 0.5.1 py39hac30774_15 robostack-staging
ros-noetic-rqt-common-plugins 0.4.9 py39hac30774_15 robostack-staging
ros-noetic-rqt-console 0.4.11 py39hac30774_15 robostack-staging
ros-noetic-rqt-dep 0.4.12 py39hac30774_15 robostack-staging
ros-noetic-rqt-graph 0.4.14 py39hac30774_15 robostack-staging
ros-noetic-rqt-gui 0.5.3 py39hac30774_15 robostack-staging
ros-noetic-rqt-gui-cpp 0.5.3 py39hac30774_15 robostack-staging
ros-noetic-rqt-gui-py 0.5.3 py39hac30774_15 robostack-staging
ros-noetic-rqt-image-view 0.4.16 py39hac30774_15 robostack-staging
ros-noetic-rqt-launch 0.4.9 py39hac30774_15 robostack-staging
ros-noetic-rqt-logger-level 0.4.11 py39hac30774_15 robostack-staging
ros-noetic-rqt-moveit 0.5.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-msg 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-nav-view 0.5.7 py39hac30774_15 robostack-staging
ros-noetic-rqt-plot 0.4.13 py39hac30774_15 robostack-staging
ros-noetic-rqt-pose-view 0.5.11 py39hac30774_15 robostack-staging
ros-noetic-rqt-publisher 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-py-common 0.5.3 py39hac30774_15 robostack-staging
ros-noetic-rqt-py-console 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-reconfigure 0.5.5 py39hac30774_16 robostack-staging
ros-noetic-rqt-robot-dashboard 0.5.8 py39hac30774_15 robostack-staging
ros-noetic-rqt-robot-monitor 0.5.14 py39hac30774_15 robostack-staging
ros-noetic-rqt-robot-plugins 0.5.8 py39hac30774_15 robostack-staging
ros-noetic-rqt-robot-steering 0.5.12 py39hac30774_15 robostack-staging
ros-noetic-rqt-runtime-monitor 0.5.9 py39hac30774_15 robostack-staging
ros-noetic-rqt-rviz 0.7.0 py39hd1c2957_15 robostack-staging
ros-noetic-rqt-service-caller 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-shell 0.4.11 py39hac30774_15 robostack-staging
ros-noetic-rqt-srv 0.4.9 py39hac30774_15 robostack-staging
ros-noetic-rqt-tf-tree 0.6.3 py39hac30774_15 robostack-staging
ros-noetic-rqt-top 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-rqt-topic 0.4.13 py39hac30774_15 robostack-staging
ros-noetic-rqt-web 0.4.10 py39hac30774_15 robostack-staging
ros-noetic-ruckig 0.9.2 py39hac30774_15 robostack-staging
ros-noetic-rviz 1.14.19 py39hc38ce71_15 robostack-staging
ros-noetic-rviz-plugin-tutorials 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-rviz-python-tutorial 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-self-test 1.11.0 py39hac30774_15 robostack-staging
ros-noetic-sensor-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-shape-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-simulators 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-smach 2.5.0 py39hac30774_15 robostack-staging
ros-noetic-smach-msgs 2.5.0 py39hac30774_15 robostack-staging
ros-noetic-smach-ros 2.5.0 py39hac30774_15 robostack-staging
ros-noetic-smclib 1.8.6 py39hac30774_15 robostack-staging
ros-noetic-srdfdom 0.6.3 py39h4d5781e_15 robostack-staging
ros-noetic-std-msgs 0.5.13 py39hac30774_15 robostack-staging
ros-noetic-std-srvs 1.11.3 py39hac30774_15 robostack-staging
ros-noetic-stereo-image-proc 1.17.0 py39hac30774_15 robostack-staging
ros-noetic-stereo-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-tf 1.13.2 py39h80695a1_15 robostack-staging
ros-noetic-tf-conversions 1.13.2 py39hac30774_15 robostack-staging
ros-noetic-tf2 0.7.6 py39ha661dd0_15 robostack-staging
ros-noetic-tf2-eigen 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-tf2-geometry-msgs 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-tf2-kdl 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-tf2-msgs 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-tf2-py 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-tf2-ros 0.7.6 py39hac30774_15 robostack-staging
ros-noetic-theora-image-transport 1.14.0 py39hac30774_15 robostack-staging
ros-noetic-topic-tools 1.15.15 py39hac30774_15 robostack-staging
ros-noetic-trajectory-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-transmission-interface 0.19.6 py39hac30774_15 robostack-staging
ros-noetic-turtle-actionlib 0.2.0 py39hac30774_15 robostack-staging
ros-noetic-turtle-tf 0.2.3 py39hac30774_15 robostack-staging
ros-noetic-turtle-tf2 0.2.3 py39hac30774_15 robostack-staging
ros-noetic-turtlesim 0.10.2 py39h873cbd0_15 robostack-staging
ros-noetic-urdf 1.13.2 py39h1a81985_15 robostack-staging
ros-noetic-urdf-parser-plugin 1.13.2 py39hac30774_15 robostack-staging
ros-noetic-urdf-sim-tutorial 0.5.1 py39hac30774_15 robostack-staging
ros-noetic-urdf-tutorial 0.5.0 py39hac30774_15 robostack-staging
ros-noetic-urdfdom-py 0.4.6 py39hac30774_15 robostack-staging
ros-noetic-vision-opencv 1.16.2 py39hac30774_15 robostack-staging
ros-noetic-visualization-marker-tutorials 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-visualization-msgs 1.13.1 py39hac30774_15 robostack-staging
ros-noetic-visualization-tutorials 0.11.0 py39hac30774_15 robostack-staging
ros-noetic-viz 1.5.0 py39hac30774_15 robostack-staging
ros-noetic-webkit-dependency 1.1.2 py39hac30774_15 robostack-staging
ros-noetic-xacro 1.14.14 py39hac30774_15 robostack-staging
ros-noetic-xmlrpcpp 1.15.15 py39h873cbd0_15 robostack-staging
rosdep 0.22.2 pyhd8ed1ab_2 conda-forge
rosdistro 0.9.0 py39hf3d152e_1 conda-forge
rospkg 1.5.0 pyhd8ed1ab_0 conda-forge
ruby 3.2.2 hff50039_0 conda-forge
sbcl 1.5.4 ha770c72_1 conda-forge
sdl2 2.26.5 h949db6a_0 conda-forge
setuptools 69.0.3 pyhd8ed1ab_0 conda-forge
simbody 3.7 h64f3f5a_3 conda-forge
sip 6.7.12 py39h3d6467e_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snappy 1.1.10 h9fff704_0 conda-forge
sqlite 3.44.2 h2c6b66d_0 conda-forge
svt-av1 1.4.1 hcb278e6_0 conda-forge
swig 4.1.1 he155508_1 conda-forge
tbb 2021.9.0 hf52228f_0 conda-forge
tbb-devel 2021.9.0 hf52228f_0 conda-forge
tiledb 2.13.2 hd532e3d_0 conda-forge
tinyxml 2.6.2 h4bd325d_2 conda-forge
tinyxml2 9.0.0 h9c3ff4c_2 conda-forge
tk 8.6.13 noxft_h4845f30_101 conda-forge
toml 0.10.2 pyhd8ed1ab_0 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
typing-extensions 4.9.0 hd8ed1ab_0 conda-forge
typing_extensions 4.9.0 pyha770c72_0 conda-forge
tzcode 2023d h3f72095_0 conda-forge
tzdata 2023d h0c530f3_0 conda-forge
unicodedata2 15.1.0 py39hd1e30aa_0 conda-forge
unixodbc 2.3.12 h661eb56_0 conda-forge
urdfdom 3.1.1 h8a9b4ce_0 conda-forge
urdfdom_headers 1.1.1 h00ab1b0_0 conda-forge
uriparser 0.9.7 hcb278e6_1 conda-forge
utfcpp 4.0.5 ha770c72_0 conda-forge
vtk 9.2.2 qt_py39hc075ee6_205 conda-forge
wheel 0.42.0 pyhd8ed1ab_0 conda-forge
wslink 1.12.4 pyhd8ed1ab_0 conda-forge
x264 1!164.3095 h166bdaf_2 conda-forge
x265 3.5 h924138e_3 conda-forge
xbot2 2.12.0 h079e4ff_1 iit_hhcm
xbot2-gui 1.0.0 hbd3e394_1 iit_hhcm
xbot_msgs 2.0.0 h079e4ff_1 iit_hhcm
xbotinterface 2.3.0 py39h079e4ff_1 iit_hhcm
xcb-util 0.4.0 h516909a_0 conda-forge
xcb-util-image 0.4.0 h166bdaf_0 conda-forge
xcb-util-keysyms 0.4.0 h516909a_0 conda-forge
xcb-util-renderutil 0.3.9 h166bdaf_0 conda-forge
xcb-util-wm 0.4.1 h516909a_0 conda-forge
xerces-c 3.2.4 h55805fa_1 conda-forge
xkeyboard-config 2.38 h0b41bf4_0 conda-forge
xorg-fixesproto 5.0 h7f98852_1002 conda-forge
xorg-inputproto 2.3.2 h7f98852_1002 conda-forge
xorg-kbproto 1.0.7 h7f98852_1002 conda-forge
xorg-libice 1.0.10 h7f98852_0 conda-forge
xorg-libsm 1.2.3 hd9c2040_1000 conda-forge
xorg-libx11 1.8.4 h0b41bf4_0 conda-forge
xorg-libxau 1.0.11 hd590300_0 conda-forge
xorg-libxaw 1.0.14 h7f98852_1 conda-forge
xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge
xorg-libxext 1.3.4 h0b41bf4_2 conda-forge
xorg-libxfixes 5.0.3 h7f98852_1004 conda-forge
xorg-libxi 1.7.10 h7f98852_0 conda-forge
xorg-libxmu 1.1.3 h7f98852_0 conda-forge
xorg-libxpm 3.5.16 hd590300_0 conda-forge
xorg-libxrender 0.9.10 h7f98852_1003 conda-forge
xorg-libxt 1.3.0 hd590300_0 conda-forge
xorg-renderproto 0.11.1 h7f98852_1002 conda-forge
xorg-xextproto 7.3.0 h0b41bf4_1003 conda-forge
xorg-xproto 7.0.31 h7f98852_1007 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
yaml-cpp 0.7.0 h59595ed_3 conda-forge
yarl 1.9.4 py39hd1e30aa_0 conda-forge
zeromq 4.3.5 h59595ed_0 conda-forge
zipp 3.17.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.13 hd590300_5 conda-forge
zstd 1.5.5 hfc55251_0 conda-forge
zziplib 0.13.69 h27826a3_1 conda-forge
Environment info
active environment : conda_test_env
active env location : /home/alaurenzi/mambaforge/envs/conda_test_env
shell level : 1
user config file : /home/alaurenzi/.condarc
populated config files : /home/alaurenzi/mambaforge/.condarc
/home/alaurenzi/.condarc
conda version : 22.11.1
conda-build version : not installed
python version : 3.10.8.final.0
virtual packages : __archspec=1=x86_64
__cuda=12.2=0
__glibc=2.31=0
__linux=5.15.0=0
__unix=0=0
base environment : /home/alaurenzi/mambaforge (writable)
conda av data dir : /home/alaurenzi/mambaforge/etc/conda
conda av metadata url : None
channel URLs : https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
https://conda.anaconda.org/robostack-staging/linux-64
https://conda.anaconda.org/robostack-staging/noarch
package cache : /home/alaurenzi/mambaforge/pkgs
/home/alaurenzi/.conda/pkgs
envs directories : /home/alaurenzi/mambaforge/envs
/home/alaurenzi/.conda/envs
platform : linux-64
user-agent : conda/22.11.1 requests/2.31.0 CPython/3.10.8 Linux/5.15.0-91-generic ubuntu/20.04.6 glibc/2.31
UID:GID : 1000:1000
netrc file : /home/alaurenzi/.netrc
offline mode : False
I am not 100% sure about this, but if I recall correctly given the frequent ABI breakage inside ROS packages, the idea was to rely on mutex packages rather then run_exports/run constraints. However, for sure @wolfv or @Tobias-Fischer may know more on this.
Update: I have uploaded my custom packages to a public channel. If interested, replicate the issue with this env file
name: conda_test_env
channels:
- conda-forge
- robostack-staging
- iit_hhcm
dependencies:
- ros-noetic-desktop-full
- cartesian-interface
- xbot2
- modelinterfacerbdl
- xbot2-gui
- iit-centauro-ros-pkg
Update: this environment can be solved and works fine (so far) Of course it is not ideal having to specify explicit versions
name: conda_test_env
channels:
- conda-forge
- robostack-staging
- iit_hhcm
dependencies:
- ros-noetic-desktop-full
- ros-noetic-rosmon
- cartesian-interface
- xbot2
- modelinterfacerbdl
- xbot2-gui
- iit-centauro-ros-pkg
- ros-noetic-geometric-shapes==0.7.3 # because the only available moveit build links against 0.7.3
- ros-noetic-gazebo-ros==2.9.2=py39h67aadc1_15 # workaround for [issue](https://github.com/RoboStack/ros-noetic/issues/415)
ROS packages typically link against their dependencies using a soname that includes the whole version number down to the patch version.
This is not true. Please note that we introduced SONAMES in Moveit and related packages (later including geometric_shapes) in 2016. The MoveIt stack is one of few in ROS that use SONAMES, we use it very drastically (by binding the SONAME to the release version) and I explained why in my talk at ROSCon back then. Still, it does not change the fact that the relevant conda packages need to require the exact version of those upstream libs they were built with. Notice that the same problem was never explicitly solved in OR deb releases either. They simply rebuilt all downstream packages with each release anyway.
Hi @alaurenzi - many thanks for reporting this! This is indeed a problem that we should tackle. I think we should add run_exports to all packages and set the max_version to the patch version, so that the exact version is required to run. However, for this to work, we would need some way to capture all versions of all packages at a given point in time (https://github.com/RoboStack/robostack.github.io/issues/9). Otherwise, if there any package releases a new version, we might have to rebuild all packages which is not feasible currently.