reverts commit 89291ad4f3
Protect the new macro with "m4_ifdef" instead.
Add comments to keep the old and the new flags in sync.
Change-Id: I37dea1a5c8d743f5dcf4a4d9ff38ff92200271d0
Reviewed-on: https://code.wireshark.org/review/6343
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
We do that with the autotools; do it with CMake as well.
We could, in theory, handle thosands-grouping ourselves, on all
platforms supporting ANSI C (for which read "all platforms we care
about") by using localeconv()'s thousands_sep and grouping items, but
that's a bit more work.
Fix autotools' comment for that item while we're at it (it checks the
GLib printf routines, not the system printf routines).
Change-Id: I000f0f3b955d9b192ade15e3fabc46d6b48a052e
Reviewed-on: https://code.wireshark.org/review/6317
Reviewed-by: Guy Harris <guy@alum.mit.edu>
If the check for pkg-config fails, quit immediately; don't leave the
failure message for later, as the error message in question might not be
as blunt.
Change-Id: I530e8b62f5adff228ae8ff6f9798ac538c2ad684
Reviewed-on: https://code.wireshark.org/review/6084
Reviewed-by: Guy Harris <guy@alum.mit.edu>
That way:
1) we don't have to worry about the system getopt() and our
getopt_long(), on platforms that have getopt() but not
getopt_long() (Solaris prior to Solaris 10, HP-UX, AIX), not
working well together;
2) if necessary, we can handle long options in the first pass.
Switch to using getopt_long() for the *second* pass for the GTK+ version
of Wireshark.
Use the documented mechanism for resetting the argument parser for the
glibc version of getopt_long(); use the mostly-undocumented-but-at-least-
they-documented-optreset mechanism for the *BSD version.
(We should look into doing only one pass, saving away arguments that
can't fully be processed in the first pass for further processing after
initializing libwireshark.)
Change-Id: Ide5069f1c7c66a5d04acc712551eb201080ce02f
Reviewed-on: https://code.wireshark.org/review/6063
Reviewed-by: Guy Harris <guy@alum.mit.edu>
We support three types of platforms:
1) UN*Xes that have both getopt() and getopt_long();
2) UN*Xes that have getopt() but not getopt_long();
3) Windows, which has neither.
Checking for getopt_long() lets us distinguish between 1) and 2) and
build getopt_long() for them.
Change-Id: Iaf0f142f9bebaa2eed2128d544ec9786711def45
Reviewed-on: https://code.wireshark.org/review/6045
Reviewed-by: Guy Harris <guy@alum.mit.edu>
provide their own popcount().
Change-Id: Ic26f3b50cf0bd2b4af0d42e9c27488ebbac1ab33
Reviewed-on: https://code.wireshark.org/review/5998
Petri-Dish: Stephen Fisher <sfisher@sdf.org>
Reviewed-by: Stephen Fisher <sfisher@sdf.org>
Use it to check whether we need -lm for various math functions -
including floorl(). Let it handle adding -lm, rather than having that
in the various _LDADD macros.
Change-Id: Ic5d24ec35e060306351f4981c92e26879e597d81
Reviewed-on: https://code.wireshark.org/review/5908
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Use AC_CHECK_FUNC() for it, define FLOORL_LO to floorl.lo if we *don't*
have it, add FLOORL_LO to the list of items conditionally built in
libwsutil, and include "wsutil/floor.h" only if HAVE_FLOORL is *not*
defined, as that means it's *not* supplied by the platform and thus
*not* declared in <math.h>.
Also, use the standard export stuff in wsutil/floor.h.
Change-Id: Ic24aa69f65f2d15450d8b84b0c2b0c58f38edebe
Reviewed-on: https://code.wireshark.org/review/5901
Reviewed-by: Guy Harris <guy@alum.mit.edu>
(I messed up my local git repo using git branches and stash/stash pops,
sorry for all of the extra commits for one change)
Change-Id: Ib031ae7d57ba9ea4b19fe13121643799e7563046
Reviewed-on: https://code.wireshark.org/review/5893
Reviewed-by: Stephen Fisher <sfisher@sdf.org>
__builtin_floorl() function) for systems which don't provide one.
Change-Id: Ie0140ff195f0eae525c7bd70c7c3e23039fde569
Reviewed-on: https://code.wireshark.org/review/5889
Reviewed-by: Stephen Fisher <sfisher@sdf.org>
Wireshark is the desktop app; if we're not building it (i.e., we're only
building the command-line TShark), we don't need any desktop files.
Change-Id: Id8244b417fd53c9d55b4d77fe3ad748c98868ad7
Reviewed-on: https://code.wireshark.org/review/5615
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It doesn't need it, so don't install those files, or uninstall them, or
suggest running various unnecessary commands after the installation
finishes.
Change-Id: Ieecab22884723670f47f2fc7cc1ac827f48c1967
Reviewed-on: https://code.wireshark.org/review/5614
Reviewed-by: Guy Harris <guy@alum.mit.edu>
allow for unusual paths for Qt's rcc program (FreeBSD ports puts it in
/usr/local/lib/qt5/bin). This matches the existing functionality of the
MOC and UIC variables/programs.
Change-Id: I885d61bce54d9e893e0c2fc496a9ff767a096ae6
Reviewed-on: https://code.wireshark.org/review/5139
Petri-Dish: Stephen Fisher <stephenfisher@centurylink.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stephen Fisher <stephenfisher@centurylink.net>
Sadly, older versions of autoconf - such as the ones on the OS X buildbots - don't know about AC_CONFIG_MACRO_DIRS.
This reverts commit 89291ad4f3.
Change-Id: Ie4fa71062886f58c7f6014f6b7969921f0b824ae
Reviewed-on: https://code.wireshark.org/review/5116
Reviewed-by: Guy Harris <guy@alum.mit.edu>
libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([./aclocal-fallback])' to
configure.ac
This is explained in the libtool manual:
"In the future other Autotools will automatically check the contents of
AC_CONFIG_MACRO_DIRS, but at the moment it is more portable to add the macro
directory to ACLOCAL_AMFLAGS in Makefile.am, which is where the tools currently
look. If libtoolize doesn't see AC_CONFIG_MACRO_DIRS, it too will
honour the first -I argument in ACLOCAL_AMFLAGS when
choosing a directory to store libtool configuration macros in. It is perfectly
sensible to use both AC_CONFIG_MACRO_DIRS and ACLOCAL_AMFLAGS, as long as they
are kept in synchronisation."
Change-Id: Ic203b0b5104ea3423cf8c0042b2278e82bcea332
Reviewed-on: https://code.wireshark.org/review/5113
Reviewed-by: Stephen Fisher <stephenfisher@centurylink.net>
According to
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html#//apple_ref/doc/uid/10000163i-CH1-SW1
the deployment target (minimum target OS version) and SDK version aren't
necessarily the same and, in fact, Apple typically only ship two SDKs
with each Xcode release, so if you want to build for 10.6 with the 10.6
SDK, you have to use a version of Xcode sufficiently old to have the
10.6 SDK.
Here, we instead search for the oldest SDK for an OS whose version is
greater than or equal to the deployment target. Note that this may not
work for X11-based Wireshark, as the X11 libraries can change
incompatibly between releases. (Fortunately, our plan is to kick
X11-based Wireshark to the curb for OS X, removing a large pile of
aggravation for users.)
This also requires some fixes when building Qt and gdk-pixbuf, as some
cases where we were using the minimum OS target version we needed to be
using the SDK version.
For CMake, we're using its native "deployment target" support for OS X,
and hope that it will somehow do the right thing.
Change-Id: Ie8f42c5e4719e7ebdc56b9ba5a330665bee06280
Reviewed-on: https://code.wireshark.org/review/5031
Reviewed-by: Guy Harris <guy@alum.mit.edu>
For the moment there is only the lzxpress compression used by DRS
Bug: 10546
Change-Id: Ifc7e1767934224c0198f0b09caa3efbad979ca1f
Reviewed-on: https://code.wireshark.org/review/4600
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
strncasecmp() has been prohibited for years (in favor of the g_ascii_ version).
Change-Id: I64b7c29099b1c5240757e2026fe3490096a84755
Reviewed-on: https://code.wireshark.org/review/4980
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
To populate the Wireless Toolbar menu the NL80211_CMD_GET_WIPHY
command is used. Some network interfaces must use split wiphy dump
feature for this command to function properly. One such example is the
D-Link DWA-160 USB adapter that does not show up when used without.
Make use of split wiphy dump feature whenever kernel supports it
to populate the list of monitor interfaces for the Wireless Toolbar.
Bug: 10564
Change-Id: Idc28e92f91a2488fa48eeb282a0ef1e2bd40a5f0
Reviewed-on: https://code.wireshark.org/review/4611
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
The new icons are patterned after the existing capture icons. They could
probably benefit from some adjustments here and there.
Start moving toward icon names and a directory layout compliant with
freedesktop.org's Icon Naming Specification and Icon Theme
Specification. We aren't fully compliant and might never be but anyone
with exposure to FDO icon themes should at least know where everything
is.
Make Capture Start (x-capture-start) the first icon in the toolbar.
Define the Colorize Packets, Auto Scroll, and zoom icons even though the
Qt UI doesn't use them yet.
Leave the Capture Filter, Display Filter, Coloring Rules, Preferences,
and Help icons off for now. The GTK+ toolbar is overly cluttered and I'm
not sure they're necessary.
Try not to break ui/gtk/toolbar_icons.h.
Remove welcome.qrc. I initially added it in case we needed to overlay
the welcome screen with translucent .pngs but that never happened.
To do:
- Move the old GTK+ icons to their own directory.
- Find a better name for the "toolbar" directory. "stock"?
- Make the toolbar configurable.
Change-Id: Ie07592113d307b8db786aedace672312a870fe38
Reviewed-on: https://code.wireshark.org/review/4182
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Rather than checking for all the "--with" arguments just use the "$have_xxx"
variables.
Don't allow rpmbuild's ./configure to decide to build a GUI just because it's
available: make it build only what was ./configure'd.
Change-Id: I68582b4c13da7b52d56591dce68ac426e9f607f1
Reviewed-on: https://code.wireshark.org/review/3958
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
Make sure the Qt UI is named "Wireshark" and its executable is named
"wireshark" or "wireshark.exe". Make sure the GTK+ UI is named
"Wireshark 1" or "Wireshark (GTK+)" depending on how much the target
audience is likely to care about UI toolkits. Make sure the GTK+
executable is named "wireshark-gtk" or "wireshark-gtk.exe".
It looks like moving to Qt 5.3 (g978faf3) broke the PortableApps
package. It's likely even more broken now.
Autotools out-of-tree builds also broke on Ubuntu 12.02 (automake
1.11.3) at some point. The first attempt to compile in ui/qt returns
"error: source_file.cpp: No such file or directory". The second attempt
works. Out-of-tree builds work fine on Ubuntu 14.04 (automake 1.14.1).
Tested:
- Nmake builds
- NSIS packaging
- CMake builds (Windows, OS X)
- Autotools build and distcheck
- RPM packaging
To do:
- Test Debian packaging
- Fix PortableApps
Change-Id: I66429870e05fd2d6fc901942477959ed6164fce2
Reviewed-on: https://code.wireshark.org/review/3919
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Extcap is a plugin interface, which allows for the usage
of external capture interfaces via pipes using a predefined
configuration language which results in a graphical gui.
This implementation seeks for a generic implementation,
which results in a seamless integration with the current
system, and does add all external interfaces as simple
interfaces.
Windows Note: Due to limitations with GTK and Windows,
a gspawn-winXX-helper.exe, respective gspawn-winXX-helper-console.exe
is needed, which is part of any GTK windows installation.
The default installation directory from the build is an extcap
subdirectory underneath the run directory. The folder used by
extcap may be viewed in the folders tab of the about dialog.
The default installation directory for extcap plugins with
a pre-build or installer version of wireshark is the extcap
subdirectory underneath the main wireshark directory.
For more information see:
http://youtu.be/Nn84T506SwU
bug #9009
Also take a look in doc/extcap_example.py for a Python-example
and in extcap.pod for the arguments grammer.
Todo:
- Integrate with Qt - currently no GUI is generated, but
the interfaces are still usable
Change-Id: I4f1239b2f1ebd8b2969f73af137915f5be1ce50f
Signed-off-by: Mike Ryan <mikeryan+wireshark@lacklustre.net>
Signed-off-by: Mike Kershaw <dragorn@kismetwireless.net>
Signed-off-by: Roland Knall <rknall@gmail.com>
Reviewed-on: https://code.wireshark.org/review/359
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Move them to the end of the list of optional programs.
Make it clear that echld is not built by default.
Change capitalization of tshark and tfshark.
Change-Id: Ib702ed72eb2469968e06a16c73a4009ba4cf68ad
Ping-Bug: 10380
Reviewed-on: https://code.wireshark.org/review/3596
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Jeff Morriss <jeff.morriss.ws@gmail.com>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
We decided at sharkfest that this wasn't the right design for file dissection;
we have more-or-less settled on way forward, but nobody's shown interest in
implementing it. Whether or not that ever happens, this code is effectively
dead and should be removed.
Change-Id: I14d6086df3204fffb6485228db39d9f407661417
Reviewed-on: https://code.wireshark.org/review/3400
Petri-Dish: Evan Huus <eapache@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Evan Huus <eapache@gmail.com>
On the 32-bit OS X buildbot, automake is old enough that autotools
builds are verbose, printing the command line for each compile step; if
we cause CMake to produce verbose makefiles, they will also print the
command line, so we can see what differences there are.
This means the other debugging output we added isn't necessary; remove
it.
Sort the extra warning options in configure.ac based on whether they're
for C and C++ or just C, just as is the case in CMake, to make it easier
to keep the lists in sync; add comments to configure.ac to mirror the
ones in CMakeLists.txt.
Get rid of -Wno-deprecated-declarations; the CMake build doesn't use it,
and it doesn't appear to be necessary - if we ever have problems with OS
X complaining about using OpenSSL, for example, we should do as tcpdump
does and wrap uses of the "deprecated"-but-cross-platform APIs in
the appropriate pragmas.
Change-Id: I0b8b45f00481ac2b67da5c7dd028a029b130dcc4
Reviewed-on: https://code.wireshark.org/review/3377
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Also, comment out the addition of -Wno-deprecated-declarations, as the
CMake build doesn't use it.
If this succeeds in making the autotools and CMake builds compile C code
with the same -W and -f flags in the same order, that should eliminate
at least one reason why the CMake build produces compiler warnings that
the autotools build doesn't.
Change-Id: I0eaeae91b8e3c39c53f502daef86c2d103c8bdab
Reviewed-on: https://code.wireshark.org/review/3374
Reviewed-by: Guy Harris <guy@alum.mit.edu>
For autotools, dump CC, CFLAGS, CXX, and CXXFLAGS.
For CMake, dump CMAKE_C_COMPILER_ID and CMAKE_CXX_COMPILER_ID.
Hopefully this will help figure out why CMake builds catch different
warnings from autotools builds.
Change-Id: I26955ad955f60e8bad248562fa87963a3a1bb42f
Reviewed-on: https://code.wireshark.org/review/3365
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It doesn't build on Linux but cmake looks for it (won't build without it) and
Windows users might want it.
Change-Id: I978f0de0a2895a82f4f3b8c1e9e0ecec6a93e6f4
Reviewed-on: https://code.wireshark.org/review/3325
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
Include CMakeLists.txt files and the gnm subdirectory, along with the
top-level Makefile.inc and Makefile.preinc files. Don't explicitly
include Custom.make, as automake does that automatically given that it's
included by asn1/Makefile.am.
Add some files to EXTRA_DIST lists.
Move some .asn files to EXTRA_DIST; they don't need to be in SRC_FILES,
as SRC_FILES always includes EXTRA_DIST, and they *do* need to be in
EXTRA_DIST so that they're in the distribution.
Change-Id: Id91df577260fa57028d40fe098be1d79c59398e6
Reviewed-on: https://code.wireshark.org/review/3273
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Some routines Wireshark uses are present in some, but not all,
platforms; for routines that would be used on all platforms, libwsutil
provides its own implementations on platforms that lack them.
On platforms that provide a routine, that routine will not be part of
the API and ABI, and, if we do an API or ABI check using the header
libwsutil provides to declare the function on platforms that lack it, we
may have a collision between the declaration in our header and the
declaration in a system header.
There's no guarantee that we can make them match, as the declaration
might differ from platform to platform and from platform version to
platform version, so we simply leave the header file out of the check if
we have the function on the platform on which we're checking the API or
ABI.
Change-Id: I8a23e63d9e17e5c1f5a83304dbe14d1e7df22e7e
Reviewed-on: https://code.wireshark.org/review/3115
Reviewed-by: Guy Harris <guy@alum.mit.edu>
With autotools, CMake, and nmake, if we have a function, #define
HAVE_{function_name_in_all_caps}, otherwise don't #define it.
If we provide our own version of a function in libwsutil, make sure we
have a header that declares it, and *ONLY* include that header if
HAVE_{function_name_in_all_caps} is *NOT* defined, so that we don't have
the system declaration and our declaration colliding.
Check for inet_aton, strncasecmp, and strptime with CMake, just as we do
with autotools.
Simplify the addition of {function_name_in_all_caps}_LO to libwsutil in
autotools.
Change-Id: Id5be5c73f79f81919a3a865324e400eca7b88889
Reviewed-on: https://code.wireshark.org/review/2903
Reviewed-by: Guy Harris <guy@alum.mit.edu>
(Strong typing is for weak minds.
Human minds are weak.
Therefore, strong typing is for human minds.)
Change-Id: I099b85e98f3b9742b1addd8d260b3e94ca7add31
Reviewed-on: https://code.wireshark.org/review/2866
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Some of those routines are used only in dumpcap; others are used in
TShark and Wireshark as well.
Change-Id: I9d92483f2fcff57a7d8b6bf6bdf2870505d19fb7
Reviewed-on: https://code.wireshark.org/review/2841
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This way, if you ask for both setuid and setcap installation of dumpcap,
it will fail, rather than silently (other than a message you might miss)
ignoring the request for setuid installation. See bug 10246.
Also:
if you ask for setuid or setcap installation of dumpcap, but
dumpcap isn't built, it'll let you know that there's nothing to
make setuid/setcap, and fail;
if you ask for setcap installation of dumpcap, but setcap wasn't
found, it'll let you know that it can't install it setcap, and
fail;
so that it won't silently (other than a message you might miss) ignore
those requests, either.
Change-Id: Ibc01593e59fd1cd1be8c68d8cdacbfdca863efa0
Reviewed-on: https://code.wireshark.org/review/2771
Reviewed-by: Guy Harris <guy@alum.mit.edu>
That's the option for newer versions of Sun^WOracle C.
Change-Id: I62c12d5870d84587f81a8789732675021523e9ed
Reviewed-on: https://code.wireshark.org/review/2769
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Not all AC_WIRESHARK_LDFLAGS_CHECK flags are -Wl,{option} flags, so
don't check for that first. If we want to check for specific compilers
and linkers, we should do that, not for -Wl,{option} support.
Change-Id: Ib9581d4a1573a1ffa2493ce08e6d5845d2601352
Reviewed-on: https://code.wireshark.org/review/2755
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This pulls some stuff out of the top-level directory, and means we don't
have to build them once for every program using them.
Change-Id: I37b31fed20f2d5c3563ecd2bae9fd86af70afff5
Reviewed-on: https://code.wireshark.org/review/2591
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This includes ws_mempbrk_sse42.c; if the compiler doesn't support
-msse4.2, HAS_SSE4_2 isn't defined, so all the stuff in
ws_mempbrk_sse42.c that uses SSE 4.2 will be #ifdeffed out.
Not all compilers with which we're built will support -msse4.2; in
particular, the ones that aren't compiling for x86 won't....
Change-Id: I69566ca06f602104b40c78b3b06fcb7dfeb054b2
Reviewed-on: https://code.wireshark.org/review/2373
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Adding -Qunused-arguments to CXXFLAGS causes the checks for -f and -m
flags not to fail with clang++, causing the configure script to warn
about -f flags supported by clang but not clang++ indicating that the
compilers are a mismatched pair.
The checks we do for flags should eliminate "unused" -f/-m flags,
suppressing the warnings that way.
Change-Id: I749d6f499a3d34300518cc0ba539f355377359af
Reviewed-on: https://code.wireshark.org/review/2362
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This might fix the Solaris/SPARC build error
configure: error: conditional "SSE42_SUPPORTED" was never defined.
Usually this means the macro was only invoked conditionally.
(not all the world's a VAX^Wx86).
Change-Id: Ib189ce70b203875188cee3266b8652c02ca34237
Reviewed-on: https://code.wireshark.org/review/2358
Reviewed-by: Guy Harris <guy@alum.mit.edu>
- check only for -msse4.2
- check if there's nmmintrin.h header
- don't check if current CPU support -msse4.2 (fix cross compilation)
Change-Id: Iba8d291fdf5602937ab540a69b7608a81427ad25
Reviewed-on: https://code.wireshark.org/review/2189
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Add autotools macros to distribution
Call AX_EXT to define HAVE_SSE4_2
Change-Id: I9ff085d923dfafb32510cdd14290e74a2aaea302
Reviewed-on: https://code.wireshark.org/review/2110
Tested-by: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Jeff Morriss <jeff.morriss.ws@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Rename --enable-extra-warnings to --enable-extra-compiler-warnings, and
have the message talking about "extra warnings" talk about "extra
compiler warnings", to make it more uniform (the documentation for the
--enable flag speaks of "additional compiler warnings") and to clarify
that these are warnings from the compiler, not from *shark.
Change-Id: Ic1a045670144f8d9eda2e3427142027e2a339156
Reviewed-on: https://code.wireshark.org/review/1230
Reviewed-by: Guy Harris <guy@alum.mit.edu>
That makes it clearer that what we're enabling are extra warnings, and
fits better with the description for --enable-warnings-as-errors, which
says the default is "yes, unless extra warnings are enabled".
Change-Id: If21f778df0dfdb98acbe02cb6a763ed27f2a7f91
Reviewed-on: https://code.wireshark.org/review/1227
Reviewed-by: Guy Harris <guy@alum.mit.edu>
We test whether a given compiler supports a given -W flag, so we don't
need to separate them and check them only for particular compilers.
To make that even clearer, rename the --enable option from
--enable-extra-gcc-checks to --enable-extra-compiler-checks, and
document it as just "do additional -W checks", and rename the
WIRESHARK_EXTRA_GCC_ CMake variables to WIRESHARK_EXTRA_COMPILER_.
Sync up the lists of warning flags in CMake with the lists in autoconf.
Uncomment -Wdocumentation while we're at it. If it doesn't work *at
all*, comment it out until it's fixed, or, better yet, fix it; if it
still produces warnings, we just leave it among the "extra" flags.
Change-Id: I4042affdade612e4025e2881d08f1ca69d759626
Reviewed-on: https://code.wireshark.org/review/1226
Reviewed-by: Guy Harris <guy@alum.mit.edu>
With -Wunreachable-code flags (and disable for the moment -Wdocumentation)
Change-Id: I126c962b32e650a63b78092e95896736ae7335c9
Reviewed-on: https://code.wireshark.org/review/678
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Add optional dependancy to libsbc to play Bluetooth SBC in
A2DP payload. Also simplify RTP Player and extent codec interface.
Change-Id: I52e1fce9c82e2885736354fe73c6c37168a4fda3
Reviewed-on: https://code.wireshark.org/review/19
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
This is a VERY PRELIMINARY version of tfshark. It's an attempt to jumpstart FileShark and its architecture. Right now it's mostly just a very stripped down version of tshark with all of the necessary build modifications (including now building filetap library since tfshark depends on it)
This code has helped me identify what I believe to be all of the necessary layers for a complete fileshark architecture. And those layers will slowly be added in time (patches always welcome!).
svn path=/trunk/; revision=54646
dissector for Novell's PKIS certificate extensions
from me
clean up the $Id$ tags
remove packet-pkis(-template).h
remove ASN.1 definitions that cause compiler warnings
(OID, SecurityLabelType2)
move the dissector to the clean ASN.1 dissectors
support CMake build
change the name to novell_pkis
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9597
svn path=/trunk/; revision=54508
supported by some versions of g++ even though the corresponding version
of gcc supports them. Other versions of g++, and clang, support them.
Check, before adding a -W option for C++, whether the compiler supports
it; that check must be done with -Werror, at least with g++, in order to
get a non-zero exit status from the compiler.
svn path=/trunk/; revision=54447
Given that Wireshark is moving to QT, the Wireshark changes required to
fix the features deprecated in Gtk 3.10 will not be done.
svn path=/trunk/; revision=54337
It should fix:
cc1plus: warning: command line option `-Wmissing-prototypes' is valid for Ada/C/ObjC but not for C++ [enabled by default]
(only g++ complains, clang is OK with -Wmissing-prototypes)
svn path=/trunk/; revision=54086
on what libwiretap thinks it is.
Update some comments to reflect the death of the hack used to include
(libwiretap) plugin support in programs not built with libwireshark.
svn path=/trunk/; revision=54015
./configure's options for gtk2 vs gtk3 vs qt.
Make it possible to not build the GNOME package (now both UIs' packages are
optional). I think Chris requested this a while ago.
If this works out it may make sense to control the rest of the options via
./configure .
svn path=/trunk/; revision=53607
http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Code-Gen-Options.html#Code-Gen-Options
-ftrapv "generates traps for signed overflow on addition, subtraction,
multiplication operations." and -fwrapv "instructs the compiler to
assume that signed arithmetic overflow of addition, subtraction and
multiplication wraps around using twos-complement representation."
Those seem mutually-exclusive to me, and we probably want wrapping, not
traps, as there's probably a fair bit of code out there that explicitly
or implicitly assumes wrapping. (Actually, we really want to avoid
signed arithmetic for the cases that most matter, such as offsets and
lengths, but, unfortunately, we currently have API conventions that
allow negative values for lengths, either with -1 meaning "to the end"
or with negative values meaning "relative to the end".) In addition,
there seem to be some bugs complaining that -ftrapv doesn't always cause
traps on signed integer overflow.
We seem to be seeing crashes in Lemon on the Solaris buildbot subsequent
to adding -ftrapv; I don't know whether that's an overflow being
detected, a bug in the compiler, or something unrelated, especially
given that we're using Sun C, not GCC, on the Solaris buildbot.
However, we'll try removing -ftrapv, to see if it fixes the problem; the
MIT CSAIL paper in question wasn't really recommending all the GCC
options it mentioned (which, as noted, wouldn't make sense, as -ftrapv
and -fwrapv appear to be mutually-exclusive).
svn path=/trunk/; revision=53556
/usr/include/qt5/QtCore/qglobal.h:1079:4: error:
"You must build your code with position independent code if Qt was built with -reduce-relocations. " "Compile your code with -fPIC or -fPIE."
svn path=/trunk/; revision=53432
installing command-line developer tools with no SDKs but with a standard
UN*Xy /usr/include or of installing Full Frontal Xcode, if the user
didn't specify building against an SDK, check to see whether we *have*
any SDKs and, if not, don't set the deployment target.
svn path=/trunk/; revision=51501
configure Wireshark, so we don't, for example, do "make distcheck" with
no options, and thus default to GTK+ 3, on a system without GTK+ 3 where
Wireshark was configured with --with-gtk2. (This also means that if
we're configuring only with Qt, or with GTK+ *and* Qt, "make distcheck"
will check with those.)
svn path=/trunk/; revision=51456
the kernel" thing, and add the NetBSD and DragonFly BSD /proc links (if
they don't mount /proc, that doesn't work, but it doesn't get in the
way).
On Solaris, check for getexecname, just in case somebody tries to build
on an old Solaris that doesn't support it (that could well end up being
the least of their problems, but at least they won't ask us to diagnose
that one).
svn path=/trunk/; revision=51343
That way, if somebody specifies --with-gtk[23] and that version of GTK+
isn't found, we fail with an indication that the version of GTK+ they
asked for isn't there, and if no GUI toolkit was specified, and they
didn't explicitly say "don't build Wireshark", we look for GTK+ 3 and,
if it's not found, let the user know explicitly.
svn path=/trunk/; revision=51323
try it without -ldl (in case the OS doesn't have it - not a good idea,
as it complicates the build process for cross-platform tools that might
require it on other platforms, but "not a good idea" never stopped UN*X
vendors in the past) and, if that fails, try it with -ldl.
svn path=/trunk/; revision=51309
deployment target; if --disable-osx-deploy-target was specified, set it
to the OS version on which we're building - minor/dot-dot version and
all - as there's no guarantee that it'll work on *any* version earlier
than that.
svn path=/trunk/; revision=51060
anything other than OS X, fail; whatever it is you're trying to do won't
work (unless and until there exists a platform that fully supports
cross-development for OS X, *including* building against SDKs and
building with -mmacosx-version-min).
If you use neither on OS X, default to the OS major version on which
you're building. If you use --disable-osx-deploy-target, don't build
against an SDK and don't use -mmacosx-version-min.
svn path=/trunk/; revision=51057
packages, providing macros that we use in our configure script in case
somebody building from SVN doesn't happen to have the package installed
and thus doesn't happen to have those macros defined.
In the case of Qt, there *isn't* such a .m4 file, so we had to create
the macro. Move it to acinclude.m4, and rename it to
AC_WIRESHARK_QT_CHECK to indicate that it's our own check.
svn path=/trunk/; revision=50881
--disable-wireshark was not specified, build with GTK+ 3.
If any of --with-gtk2 or --with-qt are specified, and --with-gtk3 wasn't
specified, *don't* look for GTK+ 3 and don't build with it.
If *both* --with-gtk2 and --with-gtk3, fail.
svn path=/trunk/; revision=50872
@executable_path/../lib as well as /usr/local/lib, so we can use @rpath
in the install names in the executables and libraries in the application
bundle.
Have the osx-app.sh script tweak all references to libraries from
/usr/local/lib in all executables, libraries, and plugins in the app
bundle to use @rpath. (The "all" is important; it fixes the GTK+ crash
mentioned in the comment in osx-app.sh. The notion of doing all of them
came from the osx-app.sh script in a newer version of Inkscape.)
This renders the setting of DYLD_LIBRARY_PATH in the wrapper scripts in
the bundle unnecessary; remove it. (Ideally, we should try to get rid
of the wrapper scripts entirely, but that might have to wait for us to
switch to using Qt.)
svn path=/trunk/; revision=50560
tests using the compiler are done using the flags that
we'll be using when building.
Add a -mmacosx-version-min flag to CFLAGS/CPPFLAGS/LDFLAGS so that the
compiler tests use them. This may, or may not, obviate the need to set
MACOSX_DEPLOYMENT_TARGET in OSX_DEPLOY_TARGET.
svn path=/trunk/; revision=50426
when building for OS X; that causes the MACOSX_DEPLOYMENT_TARGET
environment variable to be set when building (so that, for example, we
don't use linker features available on the version on which we're
building but not on the minimum OS version for which we're building),
and causes the SDK for that version to be used (so that, for example, we
don't link with libraries with later version numbers than the ones
provided with the OS version for which we're building).
svn path=/trunk/; revision=50410
AC_WIRESHARK_COMPILER_FLAGS_CHECK, because it doesn't just affect CFLAGS
and it doesn't just affect the flags for GCC.
svn path=/trunk/; revision=50222
that it doesn't fail due to the C++ compiler not supporting -W options
that the C compiler does.
(We should fix that, too, by having separate checks for whether the C
and C++ compilers support particular options.)
svn path=/trunk/; revision=50215
C++ compiler (it might not be one on, for example, OS X, due to "cc"
being a C compiler, "CC" referring to "cc" due to the case-insensitivity
of the default OS X file system, and "CC" being one of the names checked
for in AC_PROG_CXX), so if we really need a C++ compiler, test it with a
program that a C compiler won't compile.
svn path=/trunk/; revision=50204
on a Mac, right? So of *COURSE* you want to use our shiny new frameworks
rather than those ugly old open-source multi-platform libraries, right?"
warnings.
svn path=/trunk/; revision=50200
bugs it points out that probably mean the code won't work on machines
that require alignment (e.g., SPARC machines), but we'll turn it on once
we fix them. (clang is fussier than GCC about this.)
svn path=/trunk/; revision=50187
an error, or not issue warnings, by default if you give them an unknown
-f flag. Instead, test that flag with all compilers, and use -Werror to
force it to error out.
As with C/C++ flags, so with C++-only flags.
svn path=/trunk/; revision=50178
machine, with both qt4 and qt5 development tools installed), moc and uic are the
qt5 versions, but the rest of the configuration process grabs qt4 headers and
link paths, leading to a lot of weird errors.
svn path=/trunk/; revision=50150
./configure now accepts:
--with-gtk2 : enabled by default; exclusive of --with-gtk3
--with-gtk3 : disabled by default; exclusive of --with-gtk2
--with-qt : disabled by default, can be specified with gtk
--enable-wireshark : controls whether *any* GUI is built
If Qt is enabled then a new program is created: "wireshark-qt". "wireshark"
remains the Gtk+ version.
svn path=/trunk/; revision=50147
Move DESKTOP_FILE_INSTALL into the group of programs used for packaging;
it's used when you install a source package. (It's not used to *build*
a source package, but....)
svn path=/trunk/; revision=49256
see whether it's Python 2 or not; if it's not, *then* look for Python 2.
That way, you can use Python on systems where python is Python 2 and
python2 doesn't exist.
Move the check for Python up after the check for Perl. (All the program
checks arguably belong together.)
AC_PATH_PROG() does AC_SUBST() for you; don't do it ourselves.
svn path=/trunk/; revision=49253
call PKG_PROG_PKG_CONFIG explicitly in configure.ac
AC_REQUIRE(PKG_PROG_PKG_CONFIG) may be expanded only under an if
statement that's not true and thus PKG_PROG_PKG_CONFIG will never be
called.
./configure --without-gnutls --with-libnl demonstrates the problem
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8634
svn path=/trunk/; revision=49215
Point users to https://code.google.com/p/pyreshark/ as an alternative to the
current Python support.
While we're in there, make it harder to enable Python: change it from
"--with-python" to "--with-broken-python" just to prevent people from enabling
unless they really mean it (are going to work on fixing it).
svn path=/trunk/; revision=49138
Wireshark compiles with -Wc++-compat and -Werror, at least on my machine
with llvm-gcc 4.2.1. Make that a standard -W flag, to keep code that
won't pass a C++ compiler from sneaking back in (except in the files
that can't currently be compiled with -Werror for various reasons).
svn path=/trunk/; revision=48535
non-Linux systems. Warn the user if they specified --with-libnl on one
of those systems.
Allow the user to specify a particular libnl version with --with-libnl.
If the user specifies --with-libnl=VERSION, and that libnl version isn't
found, fail. No need to have an explicit "auto" argument - that's the
default.
Fix a typo in a definition message.
svn path=/trunk/; revision=48402
Make libnl a --with flag instead of an --enable flag, since it is an optional
package. Make it a three-way flag, where 'no' disables, 'yes' enables (and
errors if it can't be found), and 'auto' enables (but doesn't complain if it
can't be found). Default to 'auto', which was our old behaviour.
[This is my first real foray into autoconf, so hopefully I got everything right]
svn path=/trunk/; revision=48398
Docbook was done using Pandoc and cleaned up by hand. Add an
asciidoc.conf which contains macros for linking to Wireshark bugs and
CVE IDs.
Remove the release-notes.chm target. I don't think we ever used it and
we're probably better off generating PDF or HTML if we need something
fancier than plain text.
In configure.ac, consolidate program path discovery a bit and add a2x
discovery.
svn path=/trunk/; revision=48307
thousands grouping (') flag and use it in format_size if it's available.
As far as I can tell this translates to "everywhere except Windows and
OpenBSD". According to the various build logs at
https://build.opensuse.org/package/show?package=mingw32-glib2&project=windows%3Amingw%3Awin32
the OBS GLib packages enable GLib's internal printf implementation from
Gnulib which means we *should* be able to enable this on Windows.
Unfortunately this doesn't appear to be the case.
svn path=/trunk/; revision=48042
Add a (crude) check for the Qt version, making 4.6.0 the minimum.
The existing checks in configure.ac should be moved into into this new module.
svn path=/trunk/; revision=47537
Use them instead of repeating the same number several times.
AC_SUBST() them so we can pick them up in, for example, wireshark.spec.in .
svn path=/trunk/; revision=47481
are built with warnings.
Also add compiler-specific flags (in this case, just the flags to enable
ANSI C compilation) to CFLAGS_FOR_BUILD.
svn path=/trunk/; revision=47479
what. If we don't find them, and the user specified --with-qt, fail (if
we haven't already failed to find Qt at all); if we don't find them, and
the user *didn't* specify --with-qt, just set UIC and MOC to "uic" and
"moc", which will fail on "make dist" but will at least allow the user
to build.
svn path=/trunk/; revision=47475
exists by doing:
if test "x$3" != "x" ; then
because if the program contains quotes it breaks the shell's parsing.
Instead test for the existence of $4 (which is mandatory if $3 is given).
Fix up the test program for -Wlogical-op so that it actually compiles
warning-free (at least on my system) when the compiler doesn't have the bug
we're checking for.
svn path=/trunk/; revision=46926
worked OK before. In the test program, try declaring foo() before
defining it, in case the problem is that --enable-extra-gcc-checks
enables checking for functions that weren't declared before they were
defined, so the lack of that declaration may have caused a separate
warning.
svn path=/trunk/; revision=46924
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().
Change some data types to avoid those implicit conversion warnings.
When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.
Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers. Cast
away those warnings in some cases where an API we don't control forces
us to do so.
Enable a bunch of additional warnings by default. Note why at least
some of the other warnings aren't enabled.
randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.
If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.
svn path=/trunk/; revision=46748
Enable PIE (if the compiler supports it) when compiling dumpcap. Do this
regardless of whether we're configured to install dumpcap setuid-root because
some users will end up running dumpcap as root regardless of how we were
configured.
svn path=/trunk/; revision=46608
function actually *exist*.
Declare foo() before defining it - if we configure with
--enable-extra-gcc-checks, given that we're building with -Werror (so
that we find out whether the compiler issues a warning for a particular
construct), we have to avoid constructs that will provoke *other*
warnings.
svn path=/trunk/; revision=46488
to see whether it really doesn't work right (i.e., warns bogusly about
variables in prototype definitions of function pointers shadowing
variables) or if the test fails for some other reason.
svn path=/trunk/; revision=46476
it do an additional check, if it finds that a given compiler option is
supported by the compiler, to see whether it's supported but
undesirable. The arguments are a chunk of code to try to compile with
-Werror, and a string to be used in the "checking..." message printed
when trying to compile the cunk of code.
Try enabling -Wshadow again, but have it check whether
extern int atoi(char *p);
int
foo(char *p)
{
int (*fptr)(char *p) = atoi;
return fptr(p) * 2;
}
compiles with -Wshadow and -Werror, so that we don't use -Wshadow with
compilers that complain about that; some older versions of GCC complain
about that, and it's really not worth our effort to eliminate or rename
arguments in function prototypes to make -Wshadow work even with those
compilers.
svn path=/trunk/; revision=46475
It appears that the compiler on
the OSX-10.5-x86 buildbot must be pretty old.
All the other *nix buildbot compilers do not
check the dummy param names used in the definition
of 'xxx' below to see if they are shadowing
anything.
void foo(tvbuff_t tvb, ...) {
'void (*xxx)(tvbuff_t tvb, ....) = NULL;'
...
}
I do seem to remember reading that gcc once
had this issue but was fixed eventually.
svn path=/trunk/; revision=46430
QtWidgets and, if we find it, add its flags to CFLAGS and CXXFLAGS, so
that we find the include files for the widgets. (If we don't find it,
we assume it's Qt 4.)
svn path=/trunk/; revision=46382
Looks like this is not ready for prime time.
ToDo: determine why the OSX builds are finding issues that I don't see on Fedora.
svn path=/trunk/; revision=46378
AFAIK, all GTK Wireshark non-dirty sources now compile
without [-Wshadow] warnings.
(Altho I haven't tried the QT build or other possible
build variants), hopefully any remaining [-Wshadow] warnings for non-dirty
source can be fixed as they occur.
(Obviously this change can be reverted if there are many issues).
So: let's see if any of the automated builds break; :)
svn path=/trunk/; revision=46376
name". If it doesn't have a description, on OS X, use the System
Configuration framework to attempt to get a "friendly name" for
interfaces.
If a loopback device doesn't have a friendly name, give it "Loopback" as
the friendly name.
Move the "turn a CFString into a mallocated C string" routine into
common code, as it's used in more than one place.
svn path=/trunk/; revision=46131
checking whether the relevant frameworks are available. (An iOS port's
going to require a *lot* more work, and I don't know whether
Darwin-the-pure-OS even builds and runs any more.)
We don't need Core Services any more, as we're no longer using
Gestalt(). We just need Core Foundation for getting the OS version and
Application Services for firing up Web browser or file manager windows.
svn path=/trunk/; revision=46129
the compile line when building with cmake.
Put _U_'s definition in config.h when building with autofoo and on Windows.
svn path=/trunk/; revision=45034
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6134 :
Make VERSION_MAJOR, VERSION_MINOR, and VERSION_MICRO available in config.h so
(e.g.) dissector writers can #if around them as necessary to make a piece of
code compile with different versions of Wireshark. (Hopefully VERSION_MICRO
is not important in this respect!)
Windows also defines VERSION_EXTRA which can be used to help identify custom
builds; this is not done for these build methods (yet?).
svn path=/trunk/; revision=44986
add -no-cpp-precomp; I think the way the compiler handled precompiled
headers changed at some point. Let's stop adding it; that would fix bug
5878.
svn path=/trunk/; revision=44816
We *do*, however, use CFPropertyListCreateWithStream(), so we need to
check for it, and, if we're able to use the OS X frameworks at all, use
CFPropertyListCreateFromStream() if we don't have
CFPropertyListCreateWithStream().
svn path=/trunk/; revision=44812