Wireshark-dev: Re: [Wireshark-dev] Integrating the HAPViewer code.
From: Anders Broman <anders.broman@xxxxxxxxxxxx>
Date: Wed, 2 Sep 2015 12:04:33 +0000

 

>>Hi Anders,
>>
>>Thank you for your email. Here are some comments:
>>
>>Hi,
>>Here's my take on how to do it, please correct me if I'm wrong or fill in any missing details.
>>
>>Licensing and author files needs to be sorted out before any code can be committed.

>I moved license and author information into the individual files as you have asked and pushed it.


>>Building the code should be optional and depending on availability of the GRAPViz library and configuration of makefiles. This is >>independent of platform.

>Currently, this is not the case as the code is built in any case. The idea was to include the extension by default ;-). Joking aside, what I >have tried was to support Windows and Ubuntu. Therefore, I included and changed everything that was needed to make it work.
>For sure, it is possible to build it optionally depending on the availability of graphviz.

>>I would suggest that it's easiest to try this out on a *nix system first as it's a bit more complicated build wise and for the installer on >>Windows. I don't know much about auto tools or cmake files so someone else needs to help out here. When we have it working on *nix >>the source code could be committed in my opinion which would make it a bit simpler to work on a separate patch to get the build system >>in place for Windows and many problems may have been sorted out.
>>As I understand it the code would have to be protected by #ifdef HAVE_GRAPHVIZ or something like it. No header files from graphviz >>should be included instead a graphviz dev package would be required on the build system. Once it builds with and without the graphviz >>library we can move on to windows.

>I  agree with your explanation, it is not easy to support both systems. Alexis asked me to split the patch and remove the graphviz dll’s. >Right now, my patch does not include the dll files and therefore, it supports only *nix systems. Building Wireshark with “Host Flows” on >Ubuntu requires the graphviz dev package and the following commands:
>./autogen.sh
>./configure CXX=g++ CXXFLAGS="-std=c++11 -Wno-error=literal-suffix -Wno-error=unused-parameter" --with-geoip
>make
>
>Currently, there is no condition whether the graphviz library is available or not and therefore, whether the feature should be built or not. >This needs to be done.

>>Personally, I do not know how to add a condition to the build process (such as --without-HAPviewer) but I can extend the code by >>#ifdef >HAVE_GRAPHVIZ or something similar. After these changes, the source code should work on *nix.

>On windows we need the graphviz windows package in our package storage the nmake setup target should download it and unpack it to a >directory where the makefile will find the headers and copy whatever is needed first to the run directory wireshark-gtk2 or a subfolder (with >nmake at least). Then the installer will need to include needed files and unpack them to appropriate directories when installing. In your >original patch it looked like graphviz came with it's own GTK dlls, is that really needed? it would bloat the installation a bit.
>In my original patch, I included the graphviz windows package in the source code (I missed the idea to put the package in the package >storage). During the built process, I copied whatever is needed to the run directory or to the appropriate directories when installing. I >have to check whether the graphviz GTK dlls are really needed or the standard GTK dlls are sufficient.
>
>Best Regards,
>Pascal

I copied in this from gerrit as it seems easier to discuss it here

It seems like licensing may still be a problem L

Pascal Q:

Finally I see that QGV is released under the LGPLv3 license, which is not compatible with GPLv2 according to http://www.gnu.org/licenses/license-list.html#LGPLMy understanding is that Wiresahrk is released under GPLv2, and not GPLv2 or later, so this could be a blocker point. Gerald, am I correct or did I misunderstand the license we are using?

Wireshark is "GPLv2 or later". As I understand things, shipping packages linked with an LGPLv3 library would mean that we would be distributing Wireshark under the GPLv3. I'm not opposed to downstream projects doing this, and I'm not opposed to switching licenses. It *is* something that should be decided by the community, however.QGV's license isn't entirely clear. Although much of the source code says LGPLv3, the LICENSE.txt file says LGPLv2.1. I opened a ticket asking for clarification:https://github.com/nbergont/qgv/issues/1

Thanks for the clarification Gerald. What about Graphviz license? Is my understanding correct?

https://code.wireshark.org/review/accounts/self/avatar?s=26

Anders Broman

: Is that a problem if we just use the library e.g link with …