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

Remove pinning of swig to 4.1.0 to workaround swig regressions and add "libopencv>=4.10.0" constraint #1607

Merged
merged 9 commits into from
Jul 9, 2024

Conversation

@traversaro
Copy link
Member Author

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
Copy link
Member Author

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.

@traversaro
Copy link
Member Author

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 conda-forge/glib-feedstock#164 .

@traversaro
Copy link
Member Author

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
Copy link
Member Author

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 .

@traversaro
Copy link
Member Author

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
Copy link
Member Author

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
Copy link
Member Author

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 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 .

@traversaro
Copy link
Member Author

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.

@traversaro
Copy link
Member Author

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 conda-forge/pcl-feedstock#65, let's see if we can finally close this.

@traversaro
Copy link
Member Author

traversaro commented Jun 24, 2024

I also added a constraint on libopencv version to finally fix #1664, as the latest version of VS2022 is not compatible with libopencv<=4.9 .

@traversaro traversaro changed the title Remove pinning of swig to 4.1.0 to workaround swig regressions Remove pinning of swig to 4.1.0 to workaround swig regressions and add "libopencv>=4.10.0" constraint Jun 24, 2024
@traversaro
Copy link
Member Author

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

@traversaro
Copy link
Member Author

Cool, now macos-14 fails due to conda-forge/qt-main-feedstock#273 .

@traversaro
Copy link
Member Author

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
Copy link
Member Author

traversaro commented Jun 26, 2024

Perhaps it is related to casadi/casadi#3723 and casadi/casadi#3712 . I wonder why this does not happen with older swig. I guess it should be solved by casadi/casadi#3724 .

@traversaro
Copy link
Member Author

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
Copy link
Member Author

traversaro commented Jun 26, 2024

This was reported in conda-forge/libtheora-feedstock#21 and should be solved by conda-forge/libtheora-feedstock#22 .

@traversaro traversaro closed this Jul 1, 2024
@traversaro traversaro reopened this Jul 1, 2024
@traversaro
Copy link
Member Author

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
Copy link
Member Author

not sure what changed recently.

Ah, this was discussed in #1607 (comment) .

@traversaro
Copy link
Member Author

We need to unblock this to fix #1664 .

@traversaro
Copy link
Member Author

I guess we can backport casadi/casadi#3724 in our version of casadi and just set QT_HOST_PATH to workaround conda-forge/qt-main-feedstock#273 .

@traversaro traversaro merged commit d9fbce8 into master Jul 9, 2024
25 checks passed
@traversaro traversaro deleted the removeswigworkaround branch July 9, 2024 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant