Wireshark-dev: Re: [Wireshark-dev] RPM and inter-plugin dependencies‏

From: Alex Lindberg <alindber@xxxxxxxxx>
Date: Fri, 30 Nov 2012 08:27:18 -0800 (PST)
Just a thought, but does your plugin require a library that is on your build system but not on your install system?

A missing library will keep a plugin from running.

Alex Lindberg


From: Austin Albright <chuckbubba777@xxxxxxxxxxx>
To: Wireshark-dev <wireshark-dev@xxxxxxxxxxxxx>
Sent: Friday, November 30, 2012 8:43 AM
Subject: [Wireshark-dev] RPM and inter-plugin dependencies‏


Wireshark Gurus,

First things, first...
My development system is RHEL v5.6 and as it doesn't support a "new" enough version of GTK, my work uses the v1.6.9 SVN head.

That said, I have created my own plugin, it builds and works great on the system I've developed it on.  However, when I build the RPM, and install the RPM on another machine (identical to my development system minus all the source code) I always get a "couldn't load module" error.  The error message is quite detail and so I know it is because my plugin is using some common functions from the wimax plugin (i.e. wimax_tlv.c).

I include the wimax_tlv.h in my source as follows:
#include <plugins/wimax/wimax_tlv.h>

While grasping at straws I even tried:
#include "plugins/wimax/wimax_tlv.h"

Neither #include format made a difference.  My build of Wireshark worked regardless on my development system and gave the same exact "couldn't load module" error on the production system.

I don't get any warnings or complaints about the "#include <plugins/wimax/wimax_tlv.h>" on my development system when compiling or building the RPM, but it sure seems to have a problem with it on the production system.

One other notable thing is that on my development system when I start Wireshark and look at the plugins listing (Help->About->Plugins) my plugin is listed, but on the production system where Wireshark was installed using my RPM, it is not listed in the plugins listing.  I followed the directions for creating and including a plugin in README.plugin, but obviously I've missed something.  Also, my plugin library does get placed in /usr/lib/wireshark/plugin/<version>/ on the production system when I install my RPM.

I really don't want to have a redundant copy of the code in my custom plugin's directory so that I won't have to worry about merging corrections\updates.  I even grep'ed my entire Wireshark directory on my development system looking for another dissector or plugin that included a header from another plugin\dissector and found one (gtk/voip_calls.c) which contains a #include of a header from a dissector (gtk/voip_calls.c:60:#include <plugins/unistim/packet-unistim.h>).  So it seems like what I'm doing should work, but clearly I'm in over my head.  Any suggestions would be much appreciated.

Thanks,
Austin

___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
            mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe