-
Notifications
You must be signed in to change notification settings - Fork 7
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
Loading PlugIn failed #34
Comments
The plugin normally uses libgeotiff from the installed system on Linux. It may not be present. |
Hi Rasbats, I have already libgeotiff-dev (1.4.2-2build1) installed on my system. I am using the v3.4.2 of the photolayer plugin (provided by the openCPN 5.2.4 plugin-manager). |
Thanks. Not running 18.04 here at the moment. I will flash up another HD and install 18.04 and give the plugin a test. |
A lot of work was done after v3.3.1 to make the managed plugin, not change the functionality. This has broken something. If you import v3.3.1 from here you should get a working plugin: If you are using the gtk3 version of 18.0.4 search for that in the list of plugins. |
Thank you very much, it is working properly with the v3.3.1. Thanks for the link, I did not succeed to compile it by myself and export as tar.gz archive (that could be load by the pluginManager). |
I will keep this open. We need to fix the building method, which is 'borrowed' from ShipDriver. |
So what happens if you checkout some point back in the history:
Given this you for example do something like
This will reset the github master branch to the last commit and build that. Now, breaking master is a bad idea, you can use the build' branch instead:
This will build the commit 12 revisions back. If that doesn't make it, find an even older state which works. Once you have something which works, lookup how to make a git bisect. This will help to find exactly which commit that broke the build. |
The latest build (master branch) worked on CircleCI but not locally. A linking error: The error in OpenCPN (log) using v3.4.2 from the master catalog: 07:44:41.150 MESSAGE pluginmanager.cpp:1174 Checking plugin candidate: /home/mike/.local/lib/opencpn/libphotolayer_pi.so Proj was not finding the sqlite3 library. Installed this package and I got as far as the linking error above when I built locally. |
The linking error is bad, really bad. It indicates that it tries to use the dynamic proj library instead of the bundled, static one. As usual, I need a link to the complete build log to say anything useful here. |
CircleCI log in a minute. Local build is here: This one uses proj-6.3.2 but the result is the same with proj-7.2.1 To get this far I installed the sql3 package. Latest proj versions need sql3 to build the proj database. |
And the circleci logs: |
Do I get this right: The linkage error only occurs on your local build, not on CircleCI? |
That is correct. It appears to build on CircleCI but the plugins do not work on Linux OS.
|
hm... what is the output of ldd? i. e., on linux, something like:
|
hm... This indeed looks problematic. The missing symbol A shot in the dark: does the cache contain some outdated version of the proj library? What happens if you apply this patch which will invalidate the cache and force a full rebuild? Could you please test and report back (and link to build logs if there is still problem).
|
No luck. We have the same error message in the OpenCPN log. From my reading about recent Proj versions. sql3 (spatialite) is used to create the proj.db. It needs a static sql3 to do this when it is built. Which is perhaps why the build works as far as it does locally. https://app.circleci.com/pipelines/github/Rasbats/photolayer_pi?branch=master |
This is probably not about sql3 (I assume you mean sqlite3 ?). The dynamic linkage error on linux is the missing symbol proj_get_type, a symbol which exists in the proj static library we link against. When you test this, which linux version are you using? Ubuntu Focal/20.04? Something else? I need to re-run this build and log in to the circleci builder to investigate more. It might be about linkage order. Symbols from static libraries are only linked if the code which needs the library already is processed by ld That is, re-ordering the libraries fed to ld might resolve things, or make them worse... Anyway, Saturday dinner is about to be served, wine bottles are opened. I will need to look into this later ;) |
Hm... When I look at the Focal logs I don't see any error message. What am I missing? |
Yes... I am using Focal to test this. No errors in the build logs just a plugin that installs (jigsaw icon) and does not run. Enjoy your dinner. |
Thanks, it was great. Hope you had some time to eat as well I can reproduce the problem on a clean Focal doing local builds. Will hopefully find some time late today or tomorrow to nail it down. |
The linkage order is indeed part of the problem. However, fixing this uncovers the fact that libproj.a actually isn't a working static library... an insane mess. Running out of time now, let's see when I can came back to this. |
No luck with the latest PR. The last build that worked for CI was 3.3.1. But the same linking error happens with a local build of 3.3.1. Crazy. |
I have been successful installing this plugin using a local build on a clean focal. Perhaps something in your environment? Built the plugin from current master tip at 8768d70 |
Does the Cloudsmith plugin work for you as well? BTW I am up and running with Fedora 64bit on the Pi. Installed the flathub OpenCPN but ... you mentioned needing a special version? I am getting the incompatible version message with aarch64 flatpak tarballs of ShipDriver. |
Havn't checked checked the cloudsmith one. Not surprised about the incompatible version message. This is an insane mess with no real specs. Could you please make a run with -loglevel debug and post the log? |
BTE: Have you a link to the cloudsmith repo? |
and... don't forget to clear the cache. Not doing so costed me some cycles. |
Forget ShipDriver - I think I used the wrong tarball. PhotoLayer build is here: |
Indeed. the cloudsmith tarball is broken. In fact, it isn't even linked to libgeotiff in any way. Seems like the dependency is missing in ci/control. Can you please try this patch:
|
Taking the ShipDriver conversation to the ShipDriver issues: |
New install of Focal. Using the Cloudsmith tarball the OpenCPN log is here: I will try a local build tomorrow. Interesting to see a new error. LibOpenGL. |
Also here ldd is the important tool. What does |
No, not ldd. This works because it's installed on my focal, it's in the libopengl0 package. To me. this seems like a very reasonable requriement to have installed. Why isn't it on your focal? If you install that package, is it enough to get it running? |
I will play with that package tomorrow. G'Night. |
Installed libopengl0. Back to the proj_get_type error: |
As I said, it was commit 8768d70. Doing a Can you attach the tarball so I can test and look at it? |
hm... looking at current photolayer master tip: it's very broken. Give me some time. |
photolayer-3.4.2+3832.8768d70_ubuntu-gtk3-20.04-x86_64.tar.gz 450ca76 is the result of your last patch. |
I don't understand this. The master tip doesn't even build for me. "confused". |
Same thing. It is not linked to libgeotiff at all, hence the errors. Now I need to understand why it doesn't build for me first |
OK, it builds on Focal, no problem w that. The local build is OK, linked to libgeotiff. Have a got a link to your circleci build logs for 450ca76 |
OK. I rebuilt 450ca76 on Circleci It is available on Cloudsmith: https://dl.cloudsmith.io/public/alec-leamas/opencpn-plugins-unstable/raw/names/photolayer-3.4-ubuntu-gtk3-20.04-tarball/versions/3.4.3+1761.450ca76/photolayer-3.4.3+1761.450ca76_ubuntu-gtk3-20.04-x86_64.tar.gz And I can install that plugin just fine on focal after removing my experimental wx 3.1 build of OpenCPN One thing: cache problems.. I had to clear the cache to have it working. Thoughts? |
Sorry... I may have been chasing phantoms ... again! Neede to reinstall to get it installed properly, without removing the cache. Installing the libgeotiff package brings in a number of other packages. Not sure if this can be accomodated by the plugin build process. Shall we leave this as it is? The manual will need a note. The number of PhotoLayer users may be small. If they upgraded from the legacy plugin they will already have libgeotiff on their systems. |
p.s. Now trying a local build to confirm this works. |
Problem with finding wxWidgets. Set the build process up using this: Is the problem linked with this issue: My machine is pretty clean. No self compiled wxWidgets. Leaving this to play on the Pi. I will do more tests later, trying Petri fixes. |
Those docs are crap. Instead, use https://github.com/Rasbats/managed_plugins/wiki/Local-Build ;) |
RTFM... Perfect... the local build now works fine. Something needs adding to the DokuWiki;)
|
Yes, there are more pressing issues for now. If we really should dive in this I'm convinced it's a can of nasty worms... |
Agree... I will get this version in the managed list. |
Hello and thank you for this very useful plugin.
I have some troubles by loading the photolayer_pi plugin in openCPN 5.2.4 in one of my two computers, both running on Ubuntu 18.04.
When the plugin manager load the plugin, i have the following error in the opencpn log :
ERROR dlunix.cpp:2291 ...../lib/opencpn/libphotolayer_pi.so: undefined symbol: proj_get_type
Do you have any idea about what is going on?
Thanks!
VRI
The text was updated successfully, but these errors were encountered: