robotology-superbuild icon indicating copy to clipboard operation
robotology-superbuild copied to clipboard

Remove pinning of swig to 4.1.0 to workaround swig regressions

Open traversaro opened this issue 11 months ago • 8 comments

Related issues:

  • https://github.com/casadi/casadi/issues/3527
  • https://github.com/robotology/yarp/issues/3083
  • https://github.com/swig/swig/issues/2783
  • https://github.com/swig/swig/issues/2796

traversaro avatar Feb 26 '24 14:02 traversaro

Cool, removing the pinning still installs swig 4.2.0 instead of swig 4.2.1, I guess there is a pcre2 migration going on:

The following packages are incompatible
├─ opencv 4.9.0  is installable and it requires
│  └─ libopencv [4.9.0 py310h0e49cd2_8|4.9.0 py310h97f20a8_5|...|4.9.0 py39hc62deea_8], which requires
│     └─ libglib [>=2.78.3,<3.0a0 |>=2.78.4,<3.0a0 ], which requires
│        └─ pcre2 >=10.42,<10.43.0a0 , which can be installed;
└─ swig 4.2.1  is not installable because it requires
   └─ pcre2 >=10.43,<10.44.0a0 , which conflicts with any installable versions previously reported.

traversaro avatar Feb 26 '24 21:02 traversaro

Cool, removing the pinning still installs swig 4.2.0 instead of swig 4.2.1, I guess there is a pcre2 migration going on:

The following packages are incompatible
├─ opencv 4.9.0  is installable and it requires
│  └─ libopencv [4.9.0 py310h0e49cd2_8|4.9.0 py310h97f20a8_5|...|4.9.0 py39hc62deea_8], which requires
│     └─ libglib [>=2.78.3,<3.0a0 |>=2.78.4,<3.0a0 ], which requires
│        └─ pcre2 >=10.42,<10.43.0a0 , which can be installed;
└─ swig 4.2.1  is not installable because it requires
   └─ pcre2 >=10.43,<10.44.0a0 , which conflicts with any installable versions previously reported.

Exactly, the problem is https://github.com/conda-forge/swig-feedstock/pull/49 that was done on swig side and https://github.com/conda-forge/glib-feedstock/pull/159 that still neesd to be done on the glib side.

traversaro avatar Feb 26 '24 21:02 traversaro

Cool, removing the pinning still installs swig 4.2.0 instead of swig 4.2.1, I guess there is a pcre2 migration going on:

The following packages are incompatible
├─ opencv 4.9.0  is installable and it requires
│  └─ libopencv [4.9.0 py310h0e49cd2_8|4.9.0 py310h97f20a8_5|...|4.9.0 py39hc62deea_8], which requires
│     └─ libglib [>=2.78.3,<3.0a0 |>=2.78.4,<3.0a0 ], which requires
│        └─ pcre2 >=10.42,<10.43.0a0 , which can be installed;
└─ swig 4.2.1  is not installable because it requires
   └─ pcre2 >=10.43,<10.44.0a0 , which conflicts with any installable versions previously reported.

Exactly, the problem is conda-forge/swig-feedstock#49 that was done on swig side and conda-forge/glib-feedstock#159 that still neesd to be done on the glib side.

This was eventually done in https://github.com/conda-forge/glib-feedstock/pull/164 .

traversaro avatar Mar 12 '24 22:03 traversaro

Ok, now YARP compiles fine, the failure is caused by casadi 3.6.3 instead:

2024-03-12T22:42:42.7822982Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7825228Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7825917Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7826557Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7829348Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Matrix<double>; PyObject = _object]':
2024-03-12T22:42:42.7832589Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:40283:22:   required from here
2024-03-12T22:42:42.7835957Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7838047Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7838728Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7839373Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7841688Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7843774Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7844406Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7845005Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7847641Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Sparsity; PyObject = _object]':
2024-03-12T22:42:42.7850808Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:46774:22:   required from here
2024-03-12T22:42:42.7854115Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7856282Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7856984Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7857632Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7859955Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7862022Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7862670Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7863284Z       |             SWIG_Python_str_FromFormat

traversaro avatar Mar 12 '24 23:03 traversaro

Ok, now YARP compiles fine, the failure is caused by casadi 3.6.3 instead:

2024-03-12T22:42:42.7822982Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7825228Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7825917Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7826557Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7829348Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Matrix<double>; PyObject = _object]':
2024-03-12T22:42:42.7832589Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:40283:22:   required from here
2024-03-12T22:42:42.7835957Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7838047Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7838728Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7839373Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7841688Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7843774Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7844406Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7845005Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7847641Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Sparsity; PyObject = _object]':
2024-03-12T22:42:42.7850808Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:46774:22:   required from here
2024-03-12T22:42:42.7854115Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7856282Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7856984Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7857632Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7859955Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7862022Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7862670Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7863284Z       |             SWIG_Python_str_FromFormat

Cool, that is fixed by casadi 3.6.5, see https://github.com/casadi/casadi/blob/3.6.5/swig/casadi.i#L84 . So this PR is blocked by https://github.com/robotology/robotology-superbuild/pull/1614 .

traversaro avatar Mar 12 '24 23:03 traversaro

Ok, now YARP compiles fine, the failure is caused by casadi 3.6.3 instead:

2024-03-12T22:42:42.7822982Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7825228Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7825917Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7826557Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7829348Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Matrix<double>; PyObject = _object]':
2024-03-12T22:42:42.7832589Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:40283:22:   required from here
2024-03-12T22:42:42.7835957Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7838047Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7838728Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7839373Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7841688Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7843774Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7844406Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7845005Z       |             SWIG_Python_str_FromFormat
2024-03-12T22:42:42.7847641Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx: In instantiation of 'bool casadi::to_ptr(PyObject*, std::map<std::__cxx11::basic_string<char>, T2>**) [with M = Sparsity; PyObject = _object]':
2024-03-12T22:42:42.7850808Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:46774:22:   required from here
2024-03-12T22:42:42.7854115Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6472:49: error: 'SWIG_Python_str_AsChar' was not declared in this scope; did you mean 'SWIG_Python_str_FromChar'?
2024-03-12T22:42:42.7856282Z  6472 |             char* c_key = SWIG_Python_str_AsChar(key);
2024-03-12T22:42:42.7856984Z       |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~
2024-03-12T22:42:42.7857632Z       |                           SWIG_Python_str_FromChar
2024-03-12T22:42:42.7859955Z /home/runner/work/robotology-superbuild/robotology-superbuild/b/src/casadi/swig/casadiPYTHON_wrap.cxx:6474:38: error: 'SWIG_Python_str_DelForPy3' was not declared in this scope; did you mean 'SWIG_Python_str_FromFormat'?
2024-03-12T22:42:42.7862022Z  6474 |             SWIG_Python_str_DelForPy3(c_key);
2024-03-12T22:42:42.7862670Z       |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
2024-03-12T22:42:42.7863284Z       |             SWIG_Python_str_FromFormat

Cool, that is fixed by casadi 3.6.5, see https://github.com/casadi/casadi/blob/3.6.5/swig/casadi.i#L84 . So this PR is blocked by #1614 .

#1614 was merged, so this is ready for new CI.

traversaro avatar Mar 15 '24 13:03 traversaro

CI still installs swig 4.2.0 as:

mamba create -n bestenv "swig>=4.2.1" "gazebo>=11.14.0" "vtk>=9.2.6"

fails with:

traversaro@IITBMP014LW012:~$ mamba create -n bestenv "swig>=4.2.1" "gazebo>=11.14.0" "vtk>=9.2.6"

Looking for: ["swig[version='>=4.2.1']", "gazebo[version='>=11.14.0']", "vtk[version='>=9.2.6']"]

conda-forge/linux-64                                          No change
conda-forge/noarch                                  13.9MB @  11.9MB/s  1.2s
Could not solve for environment specs
The following packages are incompatible
├─ gazebo >=11.14.0  is installable with the potential options
│  ├─ gazebo 11.14.0 would require
│  │  ├─ ffmpeg >=6.0.0,<7.0a0  with the potential options
│  │  │  ├─ ffmpeg [6.0.0|6.0.1], which can be installed;
│  │  │  ├─ ffmpeg 6.1.0, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1 would require
│  │  │  │  └─ libopenvino-tensorflow-frontend >=2023.3.0,<2023.3.1.0a0  with the potential options
│  │  │  │     ├─ libopenvino-tensorflow-frontend [2023.3.0|2024.0.0] would require
│  │  │  │     │  └─ libabseil >=20240116.1,<20240117.0a0 , which can be installed;
│  │  │  │     └─ libopenvino-tensorflow-frontend 2023.3.0 would require
│  │  │  │        └─ libprotobuf >=4.25.1,<4.25.2.0a0 , which can be installed;
│  │  │  └─ ffmpeg 6.1.1 would require
│  │  │     └─ libopenvino-tensorflow-frontend >=2024.0.0,<2024.0.1.0a0 , which can be installed (as previously explained);
│  │  ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ libgdal >=3.7.2,<3.8.0a0  with the potential options
│  │     ├─ libgdal [3.7.2|3.7.3|3.8.0] would require
│  │     │  └─ pcre2 >=10.40,<10.41.0a0 , which can be installed;
│  │     ├─ libgdal [3.7.3|3.8.0|...|3.8.4] would require
│  │     │  └─ pcre2 >=10.42,<10.43.0a0 , which can be installed;
│  │     └─ libgdal [3.7.3|3.8.4] would require
│  │        └─ libexpat >=2.6.1,<3.0a0 , which can be installed;
│  ├─ gazebo 11.14.0 would require
│  │  ├─ ffmpeg >=6.1.1,<7.0a0  with the potential options
│  │  │  ├─ ffmpeg 6.1.1, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  │  └─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ libgdal >=3.8.2,<3.9.0a0 , which can be installed (as previously explained);
│  │  └─ libprotobuf >=4.24.4,<4.24.5.0a0 , which conflicts with any installable versions previously reported;
│  ├─ gazebo 11.14.0 would require
│  │  ├─ libgdal >=3.8.4,<3.9.0a0 , which can be installed (as previously explained);
│  │  └─ ogre >=1.10.12.1,<1.11.0a0 , which requires
│  │     └─ pugixml >=1.14,<1.15.0a0 , which can be installed;
│  ├─ gazebo 11.14.0 would require
│  │  ├─ ffmpeg >=6.1.0,<7.0a0  with the potential options
│  │  │  ├─ ffmpeg 6.1.0, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  │  └─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ libgdal >=3.8.0,<3.9.0a0 , which can be installed (as previously explained);
│  │  └─ libprotobuf >=4.24.4,<4.24.5.0a0 , which conflicts with any installable versions previously reported;
│  ├─ gazebo 11.14.0 would require
│  │  ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ libgdal >=3.8.2,<3.9.0a0 , which can be installed (as previously explained);
│  │  ├─ libignition-common3 >=3.15.1,<4.0a0  with the potential options
│  │  │  ├─ libignition-common3 3.15.1 would require
│  │  │  │  └─ ffmpeg >=6.1.1,<7.0a0  with the potential options
│  │  │  │     ├─ ffmpeg 6.1.1, which can be installed;
│  │  │  │     ├─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  │  │     └─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  │  └─ libignition-common3 3.15.1 would require
│  │  │     └─ tinyxml2 >=9.0.0,<10.0a0 , which can be installed;
│  │  ├─ libprotobuf >=4.24.4,<4.24.5.0a0 , which conflicts with any installable versions previously reported;
│  │  └─ tinyxml2 >=10.0.0,<11.0a0 , which conflicts with any installable versions previously reported;
│  ├─ gazebo 11.14.0 would require
│  │  ├─ ffmpeg >=6.0.0,<7.0a0  with the potential options
│  │  │  ├─ ffmpeg [6.0.0|6.0.1], which can be installed;
│  │  │  ├─ ffmpeg 6.1.0, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed;
│  │  │  ├─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  │  └─ ffmpeg 6.1.1, which can be installed (as previously explained);
│  │  ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│  │  ├─ libgdal >=3.7.2,<3.8.0a0 , which can be installed (as previously explained);
│  │  └─ libprotobuf >=4.24.4,<4.24.5.0a0 , which conflicts with any installable versions previously reported;
│  └─ gazebo 11.14.0 would require
│     ├─ ffmpeg >=6.1.1,<7.0a0  with the potential options
│     │  ├─ ffmpeg 6.1.1, which can be installed;
│     │  ├─ ffmpeg 6.1.1, which can be installed (as previously explained);
│     │  └─ ffmpeg 6.1.1, which can be installed (as previously explained);
│     ├─ libabseil >=20230802.1,<20230803.0a0 , which conflicts with any installable versions previously reported;
│     └─ libgdal >=3.8.3,<3.9.0a0 , which can be installed (as previously explained);
├─ swig >=4.2.1  is not installable because it requires
│  └─ pcre2 >=10.43,<10.44.0a0 , which conflicts with any installable versions previously reported;
└─ vtk >=9.2.6  is not installable because there are no viable options
   ├─ vtk 9.2.6 would require
   │  ├─ ffmpeg >=5.1.2,<6.0a0 , which conflicts with any installable versions previously reported;
   │  └─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported;
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base [9.2.6 egl_py310h1234567_10|9.2.6 egl_py310h1234567_11|...|9.2.6 qt_py39h1234567_218], which requires
   │     ├─ libexpat >=2.5.0,<2.6.0a0 , which conflicts with any installable versions previously reported;
   │     └─ pugixml >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base [9.2.6 egl_py310h1234567_19|9.2.6 egl_py310h1234567_20|...|9.2.6 qt_py39h1234567_220], which requires
   │     └─ libexpat >=2.5.0,<2.6.0a0 , which conflicts with any installable versions previously reported;
   └─ vtk 9.2.6 would require
      └─ vtk-base [9.2.6 egl_py310h1234567_3|9.2.6 egl_py310h1234567_4|...|9.2.6 qt_py39h1234567_206], which requires
         ├─ libexpat >=2.5.0,<2.6.0a0 , which conflicts with any installable versions previously reported;
         └─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported.

traversaro avatar Mar 15 '24 14:03 traversaro

This turned out to be a bit complicated, the core issue is:

traversaro@IITBMP014LW012:~$ mamba create -n bestenv "vtk>=9.2.6" "pugixml>=1.14.*" "pcre2>=10.43.*" "libgdal>=3.8.4=*_3
"

Looking for: ["vtk[version='>=9.2.6']", "pugixml[version='>=1.14.*']", "pcre2[version='>=10.43.*']", "libgdal[version='>=3.8.4',build=*_3]"]

conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache
Could not solve for environment specs
The following packages are incompatible
├─ libgdal >=3.8.4 *_3 is installable and it requires
│  ├─ libexpat >=2.6.1,<3.0a0 , which can be installed;
│  └─ proj >=9.3.1,<9.3.2.0a0 , which can be installed;
├─ pugixml >=1.14.*  is requested and can be installed;
└─ vtk >=9.2.6  is not installable because there are no viable options
   ├─ vtk 9.2.6 would require
   │  ├─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported;
   │  └─ vtk-base [9.2.6 egl_py310h1234567_3|9.2.6 egl_py310h1234567_4|...|9.2.6 qt_py39h1234567_206], which requires
   │     └─ pugixml >=1.11.4,<1.12.0a0 , which conflicts with any installable versions previously reported;
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base [9.2.6 egl_py310h1234567_10|9.2.6 egl_py310h1234567_11|...|9.2.6 qt_py39h1234567_218], which requires
   │     └─ pugixml >=1.13,<1.14.0a0 , which conflicts with any installable versions previously reported;
   ├─ vtk 9.2.6 would require
   │  └─ vtk-base [9.2.6 egl_py310h1234567_19|9.2.6 egl_py311h1234567_19|...|9.2.6 qt_py39h1234567_219], which requires
   │     └─ proj >=9.3.0,<9.3.1.0a0 , which conflicts with any installable versions previously reported;
   └─ vtk 9.2.6 would require
      └─ vtk-base [9.2.6 egl_py310h1234567_20|9.2.6 egl_py311h1234567_20|...|9.2.6 qt_py39h1234567_220], which requires
         └─ libexpat >=2.5.0,<2.6.0a0 , which conflicts with any installable versions previously reported.

In a nutshell, a recent libgdal build (required by a recent gazebo) requires expat 2.6, but this is not compatible with vtk (see https://github.com/conda-forge/vtk-feedstock/pull/321, https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/682 and https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/5640). I guess the best solution now is to wait until vtk is again compatible with expat 2.6 .

traversaro avatar Mar 16 '24 15:03 traversaro

In a nutshell, a recent libgdal build (required by a recent gazebo) requires expat 2.6, but this is not compatible with vtk (see conda-forge/vtk-feedstock#321, conda-forge/conda-forge-repodata-patches-feedstock#682 and conda-forge/conda-forge-pinning-feedstock#5640). I guess the best solution now is to wait until vtk is again compatible with expat 2.6 .

Something changed with https://github.com/conda-forge/vtk-feedstock/pull/328, once pcl migrates to vtk 9.3.0 we should be ready to resume this PR.

traversaro avatar Jun 16 '24 14:06 traversaro

In a nutshell, a recent libgdal build (required by a recent gazebo) requires expat 2.6, but this is not compatible with vtk (see conda-forge/vtk-feedstock#321, conda-forge/conda-forge-repodata-patches-feedstock#682 and conda-forge/conda-forge-pinning-feedstock#5640). I guess the best solution now is to wait until vtk is again compatible with expat 2.6 .

Something changed with conda-forge/vtk-feedstock#328, once pcl migrates to vtk 9.3.0 we should be ready to resume this PR.

We have the new pcl since https://github.com/conda-forge/pcl-feedstock/pull/65, let's see if we can finally close this.

traversaro avatar Jun 24 '24 09:06 traversaro

I also added a constraint on libopencv version to finally fix https://github.com/robotology/robotology-superbuild/issues/1664, as the latest version of VS2022 is not compatible with libopencv<=4.9 .

traversaro avatar Jun 24 '24 09:06 traversaro

There is now a strange installation conflict that is due to https://github.com/conda-forge/zziplib-feedstock/pull/11, hopefully once that PR is merged it will be solved.

traversaro avatar Jun 24 '24 14:06 traversaro

Cool, now macos-14 fails due to https://github.com/conda-forge/qt-main-feedstock/issues/273 .

traversaro avatar Jun 24 '24 17:06 traversaro

On Windows there is a casadi bindings failure, that could be related to a swig update:

2024-06-24T18:27:52.9547005Z     casadiPYTHON_wrap.cxx
2024-06-24T18:27:53.2254612Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(753,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-06-24T18:27:53.2259345Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(778,5): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-06-24T18:27:53.8409962Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(9144,13): warning C4101: 'my_tuple1': unreferenced local variable [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-06-24T18:28:12.7083574Z        Creating library D:/a/robotology-superbuild/robotology-superbuild/b/src/casadi/Release/_casadi.lib and object D:/a/robotology-superbuild/robotology-superbuild/b/src/casadi/Release/_casadi.exp
2024-06-24T18:28:12.7566233Z casadiPYTHON_wrap.obj : error LNK2019: unresolved external symbol "class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > __cdecl casadi::difference(class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > const &,class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > const &)" (?difference@casadi@@YA?AV?$vector@VMX@casadi@@V?$allocator@VMX@casadi@@@std@@@std@@AEBV23@0@Z) referenced in function _wrap_difference [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-06-24T18:28:12.7828559Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\Release\_casadi.pyd : fatal error LNK1120: 1 unresolved externals [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]

traversaro avatar Jun 26 '24 07:06 traversaro

Perhaps it is related to https://github.com/casadi/casadi/issues/3723 and https://github.com/casadi/casadi/issues/3712 . I wonder why this does not happen with older swig. I guess it should be solved by https://github.com/casadi/casadi/pull/3724 .

traversaro avatar Jun 26 '24 07:06 traversaro

Cool, new zlib excessive constraint problem:

traversaro@IITBMP014LW012:~$ conda create -n test256 "pcl>=1.14.0"  "qt6-main>=6.7.2"
Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package pcl-1.14.1-hfb80de2_1 requires vtk-base >=9.3.0,<9.3.1.0a0, but none of the providers can be installed

Could not solve for environment specs
The following packages are incompatible
├─ pcl >=1.14.0  is installable with the potential options
│  ├─ pcl 1.14.1 would require
│  │  └─ vtk-base >=9.3.0,<9.3.1.0a0  with the potential options
│  │     ├─ vtk-base 9.3.0 would require
│  │     │  ├─ libtheora >=1.1.1,<1.2.0a0 , which requires
│  │     │  │  └─ zlib 1.2.* , which can be installed;
│  │     │  └─ libxcb >=1.15,<1.16.0a0 , which can be installed;
│  │     └─ vtk-base 9.3.0 would require
│  │        └─ libtheora >=1.1.1,<1.2.0a0 , which can be installed (as previously explained);
│  └─ pcl [1.14.0|1.14.1] would require
│     └─ vtk-base >=9.2.6,<9.2.7.0a0  with the potential options
│        ├─ vtk-base 9.2.6 would require
│        │  ├─ libexpat [<2.6 |>=2.5.0,<2.6.0a0 ], which can be installed;
│        │  └─ libxcb >=1.15,<1.16.0a0 , which can be installed;
│        ├─ vtk-base 9.2.6 would require
│        │  └─ double-conversion >=3.2.0,<3.3.0a0 , which can be installed;
│        └─ vtk-base 9.2.6 would require
│           └─ libexpat [<2.6 |>=2.5.0,<2.6.0a0 ], which can be installed;
└─ qt6-main >=6.7.2  is not installable because there are no viable options
   ├─ qt6-main 6.7.2 would require
   │  ├─ double-conversion >=3.3.0,<3.4.0a0 , which conflicts with any installable versions previously reported;
   │  ├─ libzlib >=1.3.1,<2.0a0  but there are no viable options
   │  │  ├─ libzlib 1.3.1 would require
   │  │  │  └─ zlib 1.3.1 *_0, which conflicts with any installable versions previously reported;
   │  │  └─ libzlib 1.3.1 would require
   │  │     └─ zlib 1.3.1 *_1, which conflicts with any installable versions previously reported;
   │  └─ wayland >=1.23.0,<2.0a0 , which requires
   │     └─ libexpat >=2.6.2,<3.0a0 , which conflicts with any installable versions previously reported;
   └─ qt6-main 6.7.2 would require
      ├─ double-conversion >=3.3.0,<3.4.0a0 , which conflicts with any installable versions previously reported;
      ├─ libxcb >=1.16,<1.17.0a0 , which conflicts with any installable versions previously reported;
      ├─ libzlib >=1.3.1,<2.0a0 , which cannot be installed (as previously explained);
      └─ wayland >=1.23.0,<2.0a0 , which cannot be installed (as previously explained).

traversaro avatar Jun 26 '24 08:06 traversaro

This was reported in https://github.com/conda-forge/libtheora-feedstock/issues/21 and should be solved by https://github.com/conda-forge/libtheora-feedstock/pull/22 .

traversaro avatar Jun 26 '24 08:06 traversaro

Windows is failing with:

2024-07-01T09:09:17.0291088Z     casadiPYTHON_wrap.cxx
2024-07-01T09:09:17.4886957Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(753,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-07-01T09:09:17.4894189Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(778,5): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-07-01T09:09:18.1251298Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\casadiPYTHON_wrap.cxx(9144,13): warning C4101: 'my_tuple1': unreferenced local variable [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-07-01T09:09:37.4976360Z        Creating library D:/a/robotology-superbuild/robotology-superbuild/b/src/casadi/Release/_casadi.lib and object D:/a/robotology-superbuild/robotology-superbuild/b/src/casadi/Release/_casadi.exp
2024-07-01T09:09:37.5421651Z casadiPYTHON_wrap.obj : error LNK2019: unresolved external symbol "class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > __cdecl casadi::difference(class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > const &,class std::vector<class casadi::MX,class std::allocator<class casadi::MX> > const &)" (?difference@casadi@@YA?AV?$vector@VMX@casadi@@V?$allocator@VMX@casadi@@@std@@@std@@AEBV23@0@Z) referenced in function _wrap_difference [D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\swig\python\_casadi.vcxproj] [D:\a\robotology-superbuild\robotology-superbuild\b\casadi.vcxproj]
2024-07-01T09:09:37.6459042Z D:\a\robotology-superbuild\robotology-superbuild\b\src\casadi\Release\_casadi.pyd : fatal error LNK1120: 1 unresolved externals [D:\a\robotology-superbuild\robotology-

not sure what changed recently.

macOS osx-arm is still failing with the QT_HOST_PATH error, not sure what is happening.

traversaro avatar Jul 02 '24 08:07 traversaro

not sure what changed recently.

Ah, this was discussed in https://github.com/robotology/robotology-superbuild/pull/1607#issuecomment-2190979877 .

traversaro avatar Jul 02 '24 08:07 traversaro

We need to unblock this to fix https://github.com/robotology/robotology-superbuild/issues/1664 .

traversaro avatar Jul 08 '24 07:07 traversaro

I guess we can backport https://github.com/casadi/casadi/pull/3724/ in our version of casadi and just set QT_HOST_PATH to workaround https://github.com/conda-forge/qt-main-feedstock/issues/273 .

traversaro avatar Jul 08 '24 07:07 traversaro