Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version of ROS package dependencies #440

Open
1 task done
alaurenzi opened this issue Jan 23, 2024 · 5 comments
Open
1 task done

Version of ROS package dependencies #440

alaurenzi opened this issue Jan 23, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@alaurenzi
Copy link
Contributor

Solution to issue cannot be found in the documentation.

  • 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
@alaurenzi alaurenzi added the bug Something isn't working label Jan 23, 2024
@traversaro
Copy link
Member

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.

@alaurenzi
Copy link
Contributor Author

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

@alaurenzi
Copy link
Contributor Author

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) 

@v4hn
Copy link

v4hn commented Jan 30, 2024

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.

@Tobias-Fischer
Copy link
Collaborator

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 (RoboStack/robostack.github.io#9). Otherwise, if there any package releases a new version, we might have to rebuild all packages which is not feasible currently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants