I am using Debian 9 (stretch).
After doing a $ ./products/olympe/linux/env/postinst
I get an error:
E: Unable to locate package libclang-6.0-dev
E: Couldn’t find any package by glob ‘libclang-6.0-dev’
E: Couldn’t find any package by regex ‘libclang-6.0-dev’
After this I try build with $ ./build.sh -p olympe-linux -A all final -j
either with a manual dependency install or automatic:
Traceback (most recent call last):
File “/home/kryman/.local/lib/python3.5/site-packages/clang/cindex.py”, line 4023, in register_function
func = getattr(lib, item[0])
File “/usr/lib/python3.5/ctypes/init.py”, line 360, in getattr
func = self.getitem(name)
File “/usr/lib/python3.5/ctypes/init.py”, line 365, in getitem
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libclang-3.8.so.1: undefined symbol: clang_CXXConstructor_isConvertingConstructor
I am not sure what has happened or why this is not working? Is it some version inconvenience between clang and python?
One other question: Is it possible to install regular Sphinx to use a simulated drone or do I need to install parrot-sphinx?
Hello
Here is what’s happening:
- the
postinst
script tries to install libclang-6.0-dev
-
apt
can’t find it from the debian stretch repositories you’ve configured on your machine (libclang-6.0-dev is in the stretch-backports
repo), so the postinst
script fails.
- when you proceed with the build step, since you are missing an essential dependency the
./build.sh -p olympe-linux -A all final -j
command is doomed to fail. Here, it seems that it tries to use libclang-3.8.so.1 (i.e. not the right version of libclang) but the clang==6.0.0.2
python package is not compatible with this version of libclang.
- You end up with a cryptic error message
undefined symbol: clang_CXXConstructor_isConvertingConstructor
that is completely irrelevant
To fix this issue, you need to add stretch-backport to your apt repository :
echo "deb http://deb.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list > /dev/null
You can replace http://deb.debian.org/debian
by an URL of a mirror closer to your location: https://packages.debian.org/stretch-backports/amd64/libclang-6.0-dev/download
Then you just have to update your package sources list :
sudo apt-get update
and then retry the postinst script :
./products/olympe/linux/env/postinst
If you’re encountering any other error at this point please report them here. Thanks
Nicolas
1 Like
Thank you for your help. It was the wrong mirror being used, just as you explained. So the postinstall and the build after that went through okay.