{"action":"created","issue":{"url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/6","repository_url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk","labels_url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/6/labels{/name}","comments_url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/6/comments","events_url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/6/events","html_url":"https://github.com/AutonomyLab/parrot_arsdk/issues/6","id":245894910,"number":6,"title":"3.12 is failing to build on indigo ubuntu 64bit","user":{"login":"tfoote","id":447804,"avatar_url":"https://avatars3.githubusercontent.com/u/447804?v=4","gravatar_id":"","url":"https://api.github.com/users/tfoote","html_url":"https://github.com/tfoote","followers_url":"https://api.github.com/users/tfoote/followers","following_url":"https://api.github.com/users/tfoote/following{/other_user}","gists_url":"https://api.github.com/users/tfoote/gists{/gist_id}","starred_url":"https://api.github.com/users/tfoote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tfoote/subscriptions","organizations_url":"https://api.github.com/users/tfoote/orgs","repos_url":"https://api.github.com/users/tfoote/repos","events_url":"https://api.github.com/users/tfoote/events{/privacy}","received_events_url":"https://api.github.com/users/tfoote/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-07-27T00:46:05Z","updated_at":"2017-07-28T15:51:57Z","closed_at":null,"body":"http://build.ros.org/view/Kbin_uX64/job/Kbin_uX64__parrot_arsdk__ubuntu_xenial_amd64__binary/35/\r\n\r\n```\r\n\tdpkg-shlibdeps -Tdebian/ros-kinetic-parrot-arsdk.substvars -l/tmp/binarydeb/ros-kinetic-parrot-arsdk-3.12.6/debian/ros-kinetic-parrot-arsdk//opt/ros/kinetic/lib/ debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libjson-c.so.2.0.2 debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libmux.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetwork.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardatatransfer.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmavlink.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarsal.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libcurl.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libpomp.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmedia.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcommands.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetworkal.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/x86_64-linux-gnu/libstdc\\+\\+.so.6.0.21\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardiscovery.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarcommands.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarstream.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarstream2.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarnetworkal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarnetwork.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: error: couldn't find library libjson-c.so.2 needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardiscovery.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarutils.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardatatransfer.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libpomp.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: error: couldn't find library libjson-c.so.2 needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardatatransfer.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardiscovery.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardatatransfer.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarutils.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardatatransfer.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcommands.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetwork.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarnetworkal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetwork.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libpomp.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libmux.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardiscovery.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: /usr/lib/x86_64-linux-gnu/libcurl.so has an unexpected SONAME (libcurl.so.4)\r\ndpkg-shlibdeps: warning: can't extract name and version from library name 'libcurl.so'\r\ndpkg-shlibdeps: warning: can't extract name and version from library name 'libcurl.so'\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmedia.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libardiscovery.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmedia.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: error: couldn't find library libjson-c.so.2 needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmedia.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libpomp.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarmedia.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetworkal.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetworkal.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libpomp.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetworkal.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarnetworkal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libmux.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libpomp.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: error: couldn't find library libjson-c.so.2 needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmavlink.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarsal.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: couldn't find library libarnetwork.so needed by debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream.so (ELF format: 'elf64-x86-64'; RPATH: '')\r\ndpkg-shlibdeps: warning: package could avoid a useless dependency if debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so was not linked against libcurl.so (it uses none of the library's symbols)\r\ndpkg-shlibdeps: error: cannot continue due to the errors listed above\r\nNote: libraries are not searched in other binary packages that do not have any shlibs or symbols file.\r\nTo help dpkg-shlibdeps find private libraries, you might need to use -l.\r\ndh_shlibdeps: dpkg-shlibdeps -Tdebian/ros-kinetic-parrot-arsdk.substvars -l/tmp/binarydeb/ros-kinetic-parrot-arsdk-3.12.6/debian/ros-kinetic-parrot-arsdk//opt/ros/kinetic/lib/ debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libjson-c.so.2.0.2 debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libmux.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetwork.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardatatransfer.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libardiscovery.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmavlink.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarupdater.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarsal.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libcurl.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libpomp.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarmedia.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcommands.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarcontroller.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarutils.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarstream2.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/libarnetworkal.so debian/ros-kinetic-parrot-arsdk/opt/ros/kinetic/lib/parrot_arsdk/x86_64-linux-gnu/libstdc++.so.6.0.21 returned exit code 2\r\ndebian/rules:51: recipe for target 'override_dh_shlibdeps' failed\r\nmake[1]: *** [override_dh_shlibdeps] Error 2\r\nmake[1]: Leaving directory '/tmp/binarydeb/ros-kinetic-parrot-arsdk-3.12.6'\r\nmake: *** [binary] Error 2\r\ndebian/rules:23: recipe for target 'binary' failed\r\ndpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2\r\nE: Building failed\r\nTraceback (most recent call last):\r\n  File \"/tmp/ros_buildfarm/ros_buildfarm/binarydeb_job.py\", line 133, in build_binarydeb\r\n    subprocess.check_call(cmd, cwd=source_dir)\r\n  File \"/usr/lib/python3.5/subprocess.py\", line 581, in check_call\r\n    raise CalledProcessError(retcode, cmd)\r\nsubprocess.CalledProcessError: Command '['apt-src', 'build', 'ros-kinetic-parrot-arsdk']' returned non-zero exit status 1\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/comments/318690601","html_url":"https://github.com/AutonomyLab/parrot_arsdk/issues/6#issuecomment-318690601","issue_url":"https://api.github.com/repos/AutonomyLab/parrot_arsdk/issues/6","id":318690601,"user":{"login":"mani-monaj","id":758431,"avatar_url":"https://avatars1.githubusercontent.com/u/758431?v=4","gravatar_id":"","url":"https://api.github.com/users/mani-monaj","html_url":"https://github.com/mani-monaj","followers_url":"https://api.github.com/users/mani-monaj/followers","following_url":"https://api.github.com/users/mani-monaj/following{/other_user}","gists_url":"https://api.github.com/users/mani-monaj/gists{/gist_id}","starred_url":"https://api.github.com/users/mani-monaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mani-monaj/subscriptions","organizations_url":"https://api.github.com/users/mani-monaj/orgs","repos_url":"https://api.github.com/users/mani-monaj/repos","events_url":"https://api.github.com/users/mani-monaj/events{/privacy}","received_events_url":"https://api.github.com/users/mani-monaj/received_events","type":"User","site_admin":false},"created_at":"2017-07-28T15:51:57Z","updated_at":"2017-07-28T15:51:57Z","body":"Thanks @tfoote  for your instructions.\r\n\r\nUnfortunately, I still could not run the release_job locally. The progress would advance, but I would receive `ccache` permission errors (during the `cmake` configuration step) within the container, similar to https://github.com/ros-infrastructure/buildfarm_deployment/issues/113 . (target folder: `/home/buildfarm/.ccache/tmp`).\r\n\r\nNevertheless, I think I found where the problem is coming from.\r\n\r\n1. `parrot_arsdk` (from Parrot), comes with its own build and workspace management system which itself is fairly complex. \r\n2. As part of its default build process, it build `libjson` and `libcurl` from source. Those are used by many of its higher level libraries.\r\n3. When we wrapped this process with `catkin`, I deliberatively made the install step to copy all the libraries to a folder within the install location (e.g. `/opt/ros/kinetic/lib/parrot_arsdk/libar*.so` instead of `/opt/ros/kinetic/lib/libar*.so`). This path is not added to `LD_LIBRARY_PATH`. Any downstream dependency (such as `bebop_autonomy/bebop_driver`), [manually](https://github.com/AutonomyLab/bebop_autonomy/blob/indigo-devel/bebop_driver/CMakeLists.txt#L72) set their `link_directories` to a variable exported by this package during their `cmake` configuration step. The rational is not prevent custom version of `libjson` or `libcurl` to be installed into a shared library install location.\r\n4. Neither the `dpkg-shlibdeps` step of the build script, nor `ldconfig` know about this folder when a release_job is being executed. As you can see, `dpkg-shlibdeps` is throwing a lot of warnings because it can not find any of the custom libraries that `libar*` libraries depend on.\r\n5. According to [man:dpkg-shlibdeps](https://manpages.debian.org/testing/dpkg-dev/dpkg-shlibdeps.1.en.html), it (4) is ok for private library dependencies (`*.so`), but not for public library dependencies (`*.so.x.y.z`). The former causes a warning, while the latter results in an error.\r\n6. On some of the target platforms (such as Xenial x64), the SDK generated libraries are linked against `libjson-c.so.2`, which because of (4) can not be found by `dpkg-shlibdeps`. Since it looks like a public library dependency (5), `dpkg-shlibdeps` fails the build.\r\n\r\nIt might be difficult to trace down why this dependency happens on a certain platform only.\r\n\r\n@tfoote In my opinion the easiest fix for this problem is to let the install step install everything (including `libjson`, `libcurl` and `liblibressl`) to `/opt/ros/*/lib`. Is this going to cause any troubles for any other package?\r\n\r\nAnother option is to provide an additional `-l` argument to `dpkg-shlibdeps`. Is there any way that we can control these options at the package level?\r\n"}}
{"actor":{"display_login":"mani-monaj"}}