Can't build olympe-linux on Debian 9 (stretch)

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.