Skip to content
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

Wireshark update to 2.4, enable Qt5 by default, correctly mark dependencies #17298

Closed
wants to merge 6 commits into from

Conversation

Lekensteyn
Copy link
Contributor

@Lekensteyn Lekensteyn commented Aug 27, 2017

  • Have you followed the guidelines for contributing?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing brew install <formula>)?

A couple of patches to add new optional dependencies for Wireshark 2.4 and enabling Qt GUI by default. Please see the individual commit messages for details. Squash as needed.

Note that the fixups in the last patch will not be necessary after the upcoming 2.4.1 release (planned for Tuesday 29 August), but I have added them so the build can be tested by CI. (I have already tested each change on 10.11 El Capitan).

Question: should the number of options be reduced if possible? libssh is quite a small dependency. If more configurability is desired, note that gnutls is currently technically optional (and could be marked as such).

pkg-config was required for autotools, cmake works also without it, so remove
it. CMake has no issues with parallel install either.

Since Qt5 has become the default, explicitly add ENABLE_QT5=OFF. Since the
formula has libgcrypt as dependency, ENABLE_GCRYPT=ON is not needed either (in
fact, this option is removed in Wireshark 2.4).

Reformat other argument handling for readability.
Optional extcap modules (sshdump and ciscodump) depend on libssh.
When people install Wireshark, they often need more than just tshark.
See for example the top-voted answer to "installing Wireshark":
https://stackoverflow.com/questions/26242156/install-wireshark-on-macos-x-via-brew

While at it, install the Wireshark binary using its lowercase name to match
other platforms.
Lua dissectors and scripts can conveniently be added without recompiling
Wireshark, since it is a small dependency just mark it as recommended.
Change to xz archive, apply patch to fix the build and make the ENABLE_NGHTTP2
option work. Upstream patches:

https://code.wireshark.org/review/22725 (merged)
https://code.wireshark.org/review/23247 (under review)
@ilovezfs
Copy link
Contributor

Going to pass on this PR because we do not make GUI options default and want to keep the options to a minimum. Also, we've already decided to wait for 2.4.1 as noted here: #16504 (comment)

But thank you nonetheless @Lekensteyn!

@ilovezfs ilovezfs closed this Aug 28, 2017
@Lekensteyn
Copy link
Contributor Author

In order to reduce the number of options, should I mark some as required, rather than optional/recommended? Note that the imagemagick package also has a dozen of options.

According to analytics (Install Events), 19520 use wireshark --with-qt or the old wireshark --with-qt5 option while 55699 use the default wireshark option. Since "Wireshark" is the GUI while Tshark is the CLI, would it be OK to enable Qt by default and save some cycles (the default can be bottled)?

I proposed this PR now rather than in a few days to get some feedback and was aware of the two other PRs for 2.4.0.

@ilovezfs
Copy link
Contributor

@Lekensteyn regardless of the analytics, it's a matter of policy: https://github.com/Homebrew/brew/blob/c6290ed45913338160fa5acb84a423612b886960/docs/Acceptable-Formulae.md#stuff-that-builds-a-gui-by-default-but-doesnt-have-to

Note that the imagemagick package also has a dozen of options.

We want fewer formulae like that, not more.

I proposed this PR now rather than in a few days to get some feedback and was aware of the two other PRs for 2.4.0.

Please encourage upstream to release 2.4.1 as soon as possible.

@Lekensteyn
Copy link
Contributor Author

We want fewer formulae like that, not more.

So would you recommending using less recommends/optional and mark small dependencies as required instead?

Wireshark 2.4.1 should be released tomorrow, should be fast enough right :)

@ilovezfs
Copy link
Contributor

Wireshark 2.4.1 should be released tomorrow, should be fast enough right

Not fast enough! :)

So would you recommending using less recommends/optional and mark small dependencies as required instead?

The question is why you want to add them. We want to minimize dependencies where possible but if there is a compelling use-case for a specific dependency, we can consider requiring it.

@ilovezfs
Copy link
Contributor

Also, regarding the GUI, it's worth noting that it's available in Cask, which is the preferred way to install GUI software via Homebrew.

brew cask install wireshark

@Lekensteyn
Copy link
Contributor Author

  • lz4/snappy/nghttp2 enhance dissection support. The former two are used for Apache Cassandra CQL while the latter is for HTTP/2.
  • SpanDSP is used for supporting more G.722/G.726 codecs in the RTP Player (like needed if you work in telephony industry).
  • libssh is needed for remote capture support over SSH.

Most of these dependencies are small (except nghttp2 due to its dependencies) and can be marked as required to reduce the number of options.

I would even go as far and mark Lua, c-ares and geoip as required since these are small, but enhance the functionality (name resolution used to be possible without c-ares, but now it is required).

@Lekensteyn
Copy link
Contributor Author

New proposal for enabling more features (remove ~ to obtain the last commit that bumps to 2.4.0):
master...Lekensteyn:wireshark-formula~. WDYT?

@Lekensteyn Lekensteyn mentioned this pull request Aug 29, 2017
4 tasks
@Homebrew Homebrew locked and limited conversation to collaborators May 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants