Wireshark-dev: Re: [Wireshark-dev] Plugins all reported as type 'file type'

From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Sun, 14 Jan 2018 11:48:50 -0800
On Jan 14, 2018, at 9:49 AM, Jaap Keuter <jaap.keuter@xxxxxxxxx> wrote:

> It seems that the current way of registering plugins (dissector, wiretap or
> codec) doesn't really work well. Maybe this is limited to source builds,

As far as I know, it's limited to running from an autotools source build.

The problem is that, in autotools source builds, the plugin binary files are all in the source directories of the plugins, not in the expected subdirectories; CMake builds put them in the appropriate subdirectories under "run".

This may be annoying with programs that use libwireshark, as all plugins are identified incorrectly in the plugin list.

It *breaks the build* with programs that *don't* use libwireshark, as those programs attempt to load *all* plugins, not just file type plugins, and attempts to load libwireshark plugins obviously fail.  This is why we're getting build failures on Ubuntu and Windows:

> 3.1  Suite: TShark file I/O
> 3.1.1 Step: Input file
> capinfos: Couldn't load plugin 'opcua.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/opcua/.libs/opcua.so: undefined symbol: addresses_reassembly_table_functions
> capinfos: Couldn't load plugin 'wimax.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/wimax/.libs/wimax.so: undefined symbol: addresses_reassembly_table_functions
> capinfos: Couldn't load plugin 'unistim.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/unistim/.libs/unistim.so: undefined symbol: register_tap
> capinfos: Couldn't load plugin 'wimaxasncp.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/wimaxasncp/.libs/wimaxasncp.so: undefined symbol: eap_code_vals
> capinfos: Couldn't load plugin 'mate.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/mate/.libs/mate.so: undefined symbol: prefs_register_filename_preference
> capinfos: Couldn't load plugin 'profinet.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/profinet/.libs/profinet.so: undefined symbol: dcom_variant_type_vals
> capinfos: Couldn't load plugin 'ethercat.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/ethercat/.libs/ethercat.so: undefined symbol: dissector_add_uint
> capinfos: Couldn't load plugin 'docsis.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/docsis/.libs/docsis.so: undefined symbol: addresses_reassembly_table_functions
> capinfos: Couldn't load plugin 'gryphon.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/gryphon/.libs/gryphon.so: undefined symbol: proto_item_set_len
> capinfos: Couldn't load plugin 'stats_tree.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/stats_tree/.libs/stats_tree.so: undefined symbol: uat_fld_chk_range
> capinfos: Couldn't load plugin 'transum.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/transum/.libs/transum.so: undefined symbol: wmem_strbuf_new
> capinfos: Couldn't load plugin 'wimaxmacphy.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/wimaxmacphy/.libs/wimaxmacphy.so: undefined symbol: proto_item_set_len
> capinfos: Couldn't load plugin 'irda.so': /home/wireshark/builders/wireshark-master/ubuntu-16.04-x64/build/plugins/irda/.libs/irda.so: undefined symbol: dissector_add_uint
> 
>  OK

capinfos doesn't use libwireshark, but tries to load dissector and statistics plugins, and spews out a whole bunch of noise.