Accepting request 882441 from home:AndreasStieger:branches:network:utilities

cmake 3.20 compatibility (boo#1184110)
fix build with glib2-2.68 (:G)

OBS-URL: https://build.opensuse.org/request/show/882441
OBS-URL: https://build.opensuse.org/package/show/network:utilities/wireshark?expand=0&rev=341
This commit is contained in:
Robert Frohl 2021-04-01 06:45:26 +00:00 committed by Git OBS Bridge
parent 69781bf367
commit aa1945969e
5 changed files with 405 additions and 2 deletions

View File

@ -0,0 +1,31 @@
commit 22cf2cb345b16f9783165e9cfc80ed9a97a11ca0
Author: João Valverde <joao.valverde@tecnico.ulisboa.pt>
Date: Mon Mar 29 01:32:20 2021 +0100
CMake: Set CMake Policy CMP0071 to NEW
This policy says: "Since version 3.10, CMake processes regular and GENERATED
source files in AUTOMOC and AUTOUIC. In earlier CMake versions, only regular
source files were processed. GENERATED source files were ignored silently."
We are currently running AUTOMOC/RCC/UIC on too many files unnecessarily and
that should be improved. CMake 3.20 introduced some changes related with this
that broke the build (issue #17314) and need further investigation.
Meanwhile setting this policy to NEW shouldn't break anything and silences
some noisy CMake warnings.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 99ce96ba3c..fc2d491783 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,6 +24,9 @@ endif()
if(POLICY CMP0069)
cmake_policy(SET CMP0069 NEW)
endif()
+if(POLICY CMP0071)
+ cmake_policy(SET CMP0071 NEW)
+endif()
if(POLICY CMP0074)
cmake_policy(SET CMP0074 NEW)
endif()

View File

@ -0,0 +1,45 @@
commit 4adb329c48fdc708f3911e9e785304cb7d1ad6ab
Author: Gerald Combs <gerald@wireshark.org>
Date: Fri Mar 26 12:52:01 2021 -0700
CMake: Enable AUTO{MOC,UIC,RCC} earlier.
Enable CMAKE_AUTOMOC, CMAKE_AUTOUIC, and CMAKE_AUTORCC before searching
for Qt packages. This is apparently required for CMake 3.20.0 and later.
Fixes #17314.
(cherry picked from commit be2b0fc810fb2f2a80e471138dc29f0cbe87b209)
Conflicts:
ui/qt/CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc96707896..e99d486711 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1094,6 +1094,10 @@ ws_find_package(Systemd BUILD_sdjournal HAVE_SYSTEMD)
# Build the Qt GUI?
if(BUILD_wireshark)
+ set(CMAKE_AUTOMOC ON)
+ set(CMAKE_AUTOUIC ON)
+ set(CMAKE_AUTORCC ON)
+
# Untested, may not work if CMAKE_PREFIX_PATH gets overwritten
# somewhere. The if WIN32 in this place is annoying as well.
if(WIN32)
diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt
index 20f46802a1..85993a1c71 100644
--- a/ui/qt/CMakeLists.txt
+++ b/ui/qt/CMakeLists.txt
@@ -611,10 +611,6 @@ include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
)
-set(CMAKE_AUTOMOC TRUE)
-set(CMAKE_AUTOUIC TRUE)
-set(CMAKE_AUTORCC TRUE)
-
if(NOT Qt5Widgets_VERSION VERSION_LESS "5.9")
# Drop the file modification time of source files from generated files
# to help with reproducible builds. We do not use QFileInfo.lastModified

View File

@ -0,0 +1,312 @@
diff --git a/caputils/capture_ifinfo.h b/caputils/capture_ifinfo.h
index e063134b74..9965703538 100644
--- a/caputils/capture_ifinfo.h
+++ b/caputils/capture_ifinfo.h
@@ -11,12 +11,12 @@
#ifndef __CAPTURE_IFINFO_H__
#define __CAPTURE_IFINFO_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
/*
* Explicitly set the interface_type enum values as these values are exposed
* in the preferences gui.interfaces_hidden_types string.
diff --git a/epan/dissectors/dissectors.h b/epan/dissectors/dissectors.h
index b9f4c6b0ff..6f83b01b7c 100644
--- a/epan/dissectors/dissectors.h
+++ b/epan/dissectors/dissectors.h
@@ -11,12 +11,12 @@
#ifndef __DISSECTOR_REGISTER_H__
#define __DISSECTOR_REGISTER_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
typedef struct _dissector_reg {
const char *cb_name;
void (*cb_func)(void);
diff --git a/epan/epan.h b/epan/epan.h
index 1f6a52fa27..f646c1fc95 100644
--- a/epan/epan.h
+++ b/epan/epan.h
@@ -10,11 +10,12 @@
#ifndef __EPAN_H__
#define __EPAN_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include <epan/tvbuff.h>
#include <epan/prefs.h>
#include <epan/frame_data.h>
diff --git a/epan/prefs.h b/epan/prefs.h
index 1fc560ccdc..1814f53a80 100644
--- a/epan/prefs.h
+++ b/epan/prefs.h
@@ -11,12 +11,12 @@
#ifndef __PREFS_H__
#define __PREFS_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
#include <epan/params.h>
#include <epan/range.h>
diff --git a/epan/value_string.h b/epan/value_string.h
index 03551e31f4..548ec6a7ae 100644
--- a/epan/value_string.h
+++ b/epan/value_string.h
@@ -11,11 +11,12 @@
#ifndef __VALUE_STRING_H__
#define __VALUE_STRING_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include "ws_symbol_export.h"
#include "wmem/wmem.h"
diff --git a/epan/wmem/wmem_user_cb_int.h b/epan/wmem/wmem_user_cb_int.h
index 3045d943ab..7232241c81 100644
--- a/epan/wmem/wmem_user_cb_int.h
+++ b/epan/wmem/wmem_user_cb_int.h
@@ -12,11 +12,12 @@
#ifndef __WMEM_USER_CB_INT_H__
#define __WMEM_USER_CB_INT_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include "wmem_user_cb.h"
WS_DLL_LOCAL
diff --git a/ui/packet_range.h b/ui/packet_range.h
index 6e7d34d118..2e5dad62af 100644
--- a/ui/packet_range.h
+++ b/ui/packet_range.h
@@ -14,12 +14,12 @@
#ifndef __PACKET_RANGE_H__
#define __PACKET_RANGE_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
#include <epan/range.h>
#include <epan/frame_data.h>
diff --git a/ui/recent.h b/ui/recent.h
index 3d6d1c9cdb..5ae5852bb4 100644
--- a/ui/recent.h
+++ b/ui/recent.h
@@ -12,11 +12,12 @@
#ifndef __RECENT_H__
#define __RECENT_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include <stdio.h>
#include "epan/timestamp.h"
#include "ui/ws_ui_util.h"
diff --git a/ui/rtp_media.h b/ui/rtp_media.h
index 04290f6aee..e144ac571e 100644
--- a/ui/rtp_media.h
+++ b/ui/rtp_media.h
@@ -15,6 +15,8 @@
#ifndef __RTP_MEDIA_H__
#define __RTP_MEDIA_H__
+#include <glib.h>
+
/** @file
* "RTP Player" dialog box common routines.
* @ingroup main_ui_group
@@ -24,8 +26,6 @@
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
/****************************************************************************/
/* INTERFACE */
/****************************************************************************/
diff --git a/ui/rtp_stream.h b/ui/rtp_stream.h
index e368a792bf..b683f16ba7 100644
--- a/ui/rtp_stream.h
+++ b/ui/rtp_stream.h
@@ -14,6 +14,8 @@
#ifndef __RTP_STREAM_H__
#define __RTP_STREAM_H__
+#include <glib.h>
+
/** @file
* "RTP Streams" dialog box common routines.
* @ingroup main_ui_group
@@ -24,7 +26,6 @@ extern "C" {
#endif /* __cplusplus */
#include "tap-rtp-analysis.h"
-#include <glib.h>
#include <stdio.h>
#include "cfile.h"
diff --git a/ui/voip_calls.h b/ui/voip_calls.h
index 0fc71f180f..cfd791d6f8 100644
--- a/ui/voip_calls.h
+++ b/ui/voip_calls.h
@@ -22,6 +22,8 @@
#ifndef __VOIP_CALLS_H__
#define __VOIP_CALLS_H__
+#include <glib.h>
+
/** @file
* "VoIP Calls" dialog box common routines.
* @ingroup main_ui_group
@@ -31,7 +33,6 @@
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include <stdio.h>
#include "epan/address.h"
diff --git a/wsutil/file_util.h b/wsutil/file_util.h
index 565b9d46e3..e9942f3c5b 100644
--- a/wsutil/file_util.h
+++ b/wsutil/file_util.h
@@ -11,6 +11,8 @@
#ifndef __FILE_UTIL_H__
#define __FILE_UTIL_H__
+#include <glib.h>
+
#include "config.h"
#include "ws_symbol_export.h"
@@ -19,8 +21,6 @@
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
#ifdef _WIN32
#include <io.h> /* for _read(), _write(), etc. */
#include <gmodule.h>
diff --git a/wsutil/plugins.h b/wsutil/plugins.h
index 49c221ef5e..9eaa0e41ea 100644
--- a/wsutil/plugins.h
+++ b/wsutil/plugins.h
@@ -11,13 +11,13 @@
#ifndef __PLUGINS_H__
#define __PLUGINS_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
#include <gmodule.h>
-
#include "ws_symbol_export.h"
typedef void (*plugin_register_func)(void);
diff --git a/ui/taps.h b/ui/taps.h
index 4078e6d..d083519 100644
--- a/ui/taps.h
+++ b/ui/taps.h
@@ -11,12 +11,12 @@
#ifndef __TAP_REGISTER_H__
#define __TAP_REGISTER_H__
+#include <glib.h>
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include <glib.h>
-
typedef struct _tap_reg {
const char *cb_name;
void (*cb_func)(void);
diff --git a/epan/epan_dissect.h b/epan/epan_dissect.h
index f288682..6bce465 100644
--- a/epan/epan_dissect.h
+++ b/epan/epan_dissect.h
@@ -10,11 +10,12 @@
#ifndef EPAN_DISSECT_H
#define EPAN_DISSECT_H
+#include "epan.h"
+
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
-#include "epan.h"
#include "tvbuff.h"
#include "proto.h"
#include "packet_info.h"
diff --git a/epan/conversation.h b/epan/conversation.h
index 2da42db..9457336 100644
--- a/epan/conversation.h
+++ b/epan/conversation.h
@@ -12,6 +12,7 @@
#define __CONVERSATION_H__
#include "ws_symbol_export.h"
+#include "packet.h" /* for conversation dissector type */
#ifdef __cplusplus
extern "C" {
@@ -46,8 +47,6 @@ extern "C" {
/* Flags to handle endpoints */
#define USE_LAST_ENDPOINT 0x08 /* Use last endpoint created, regardless of type */
-#include "packet.h" /* for conversation dissector type */
-
/* Types of port numbers Wireshark knows about. */
typedef enum {
ENDPOINT_NONE, /* no endpoint */

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Wed Mar 31 15:43:15 UTC 2021 - Robert Frohl <rfrohl@suse.com>
- cmake 3.20 compatibility (boo#1184110)
add cmake_3-20_compatability_1.patch and cmake_3-20_compatability_2.patch
-------------------------------------------------------------------
Tue Mar 30 18:45:45 UTC 2021 - Neal Gompa <ngompa13@gmail.com>
- Add patch from Fedora to fix build with glib2-2.68
+ Patch: wireshark-0008-move-glib.patch
-------------------------------------------------------------------
Thu Mar 11 07:40:14 UTC 2021 - Robert Frohl <rfrohl@suse.com>

View File

@ -36,6 +36,10 @@ URL: https://www.wireshark.org/
Source: https://www.wireshark.org/download/src/%{name}-%{version}.tar.xz
Source2: https://www.wireshark.org/download/SIGNATURES-%{version}.txt#/%{name}-%{version}.tar.xz.asc
Source3: https://www.wireshark.org/download/gerald_at_wireshark_dot_org.gpg#/wireshark.keyring
Patch1: cmake_3-20_compatability_1.patch
Patch2: cmake_3-20_compatability_2.patch
# Source: https://src.fedoraproject.org/rpms/wireshark/blob/f8e39e79bf25d6c3fb3f333e58f27165cc959781/f/wireshark-0008-move-glib.patch
Patch8: wireshark-0008-move-glib.patch
Patch10: wireshark-0001-dumpcap-permission-denied.patch
BuildRequires: bison
BuildRequires: flex
@ -171,9 +175,8 @@ This package contains the Qt based UI for Wireshark.
echo "`grep %{name}-%{version}.tar.xz %{SOURCE2} | grep SHA1 | head -n1 | cut -d= -f2` %{SOURCE0}" | sha1sum -c
echo "`grep %{name}-%{version}.tar.xz %{SOURCE2} | grep SHA256 | head -n1 | cut -d= -f2` %{SOURCE0}" | sha256sum -c
%setup -q
%autosetup -p1
sed -i 's/^Icon=wireshark.png$/Icon=wireshark/' wireshark*.desktop
%patch10 -p1
%build
%cmake -DCMAKE_INSTALL_LIBDIR='%{_lib}/'