diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..1b16508 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,25 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#Rawhide +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional} + +#gating rhel +--- !Policy +product_versions: + - rhel-* +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional} \ No newline at end of file diff --git a/plans.fmf b/plans.fmf new file mode 100644 index 0000000..f8749f8 --- /dev/null +++ b/plans.fmf @@ -0,0 +1,35 @@ +/tier1-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/tier1/internal + +/tier1-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/tier1/public + +/tier2-tier3-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/tier2-tier3/internal + +/tier2-tier3-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/tier2-tier3/public + +/others-internal: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/others/internal + +/others-public: + plan: + import: + url: https://gitlab.com/redhat/centos-stream/tests/wireshark.git + name: /plans/others/public diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..e8454ee --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,13 @@ +--- +ownership: + #dumpcap is the only binary that has group wireshark + ignore: + - /usr/bin/dumpcap + +capabilities: + #dumpcap is the only binary that has group wireshark + ignore: + - /usr/bin/dumpcap + +inspections: + xml: off diff --git a/sources b/sources index 4dfc574..844e3d3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wireshark-3.2.3.tar.xz) = 6e13f5aba9c3f531fab94c9f19e85856278ff534d02e406143c0c134c9b37a76d372105b43f51e95f319e31d742fc17c2812defe377886bd8f7ed03f743f9e9a -SHA512 (SIGNATURES-3.2.3.txt) = adab805747e433387c4b99bdeb839b36669d00637b523bcb5ae02bfa71571239ac085934793f358a017e476c383f2810a9afa7282d46295a9426c4a340fe485a +SHA512 (wireshark-4.6.8.tar.xz) = 4692bd15bebd67475502b6afe106e3be85b90add16f932d7e58c4426fd62b5886e96daa522aafd9ee4a8300bf3e091a738b5b1fa20e3e0721d0d0f3be216f3c8 +SHA512 (SIGNATURES-4.6.8.txt) = 598caa682ac71899465fb82a37445f7141287bbabee964dfd33aedbb4c4c6e0ed9b206d458b9eb2d9a083f9c6db9f8b50d8dcaf11e26dc33bb8baee83ae3f6fa diff --git a/wireshark-0002-Customize-permission-denied-error.patch b/wireshark-0002-Customize-permission-denied-error.patch index db8296f..4b9580c 100644 --- a/wireshark-0002-Customize-permission-denied-error.patch +++ b/wireshark-0002-Customize-permission-denied-error.patch @@ -1,57 +1,28 @@ -From: Jan Safranek -Date: Fri, 26 Nov 2010 14:30:45 +0300 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "From: Jan Safranek" +Date: Wed, 9 Sep 2026 08:53:35 +0200 Subject: [PATCH] Customize 'permission denied' error. -Add Fedora-specific message to error output when dumpcap cannot be started -because of permissions. -Signed-off-by: Jan Safranek - -diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c -index 2f9d2cc..b18e47f 100644 ---- a/capchild/capture_sync.c -+++ b/capchild/capture_sync.c -@@ -375,6 +375,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi - gchar *signal_pipe_name; - #else - char errmsg[1024+1]; -+ const char *securitymsg = ""; - int sync_pipe[2]; /* pipe used to send messages from child to parent */ - enum PIPES { PIPE_READ, PIPE_WRITE }; /* Constants 0 and 1 for PIPE_READ and PIPE_WRITE */ - #endif -@@ -728,8 +729,11 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi - dup2(sync_pipe[PIPE_WRITE], 2); - ws_close(sync_pipe[PIPE_READ]); - execv(argv[0], argv); -- g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", -- argv[0], g_strerror(errno)); -+ if (errno == EPERM || errno == EACCES) -+ securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root."; -+ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s", -+ argv[0], g_strerror(errno), securitymsg); +diff --git a/capture/capture_sync.c b/capture/capture_sync.c +index 36a8f3edbe..db8b49b816 100644 +--- a/capture/capture_sync.c ++++ b/capture/capture_sync.c +@@ -2102,8 +2102,16 @@ sync_pipe_input_cb(GIOChannel *pipe_io, capture_session *cap_session) + if (!ws_strtoi32(buffer, NULL, &exec_errno)) { + ws_warning("Invalid errno: %s", buffer); + } +- primary_msg = ws_strdup_printf("Couldn't run dumpcap in child process: %s", ++ if (exec_errno == EPERM || exec_errno == EACCES) { ++ const char *securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root."; ++ primary_msg = ws_strdup_printf("Couldn't run dumpcap in child process: %s%s", ++ g_strerror(exec_errno), securitymsg); ++ } ++ else { ++ primary_msg = ws_strdup_printf("Couldn't run dumpcap in child process: %s", + g_strerror(exec_errno)); ++ } + - sync_pipe_errmsg_to_parent(2, errmsg, ""); - - /* Exit with "_exit()", so that we don't close the connection -@@ -826,6 +830,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd, - int i; - #else - char errmsg[1024+1]; -+ const char *securitymsg = ""; - int sync_pipe[2]; /* pipe used to send messages from child to parent */ - int data_pipe[2]; /* pipe used to send data from child to parent */ - #endif -@@ -1003,8 +1008,11 @@ sync_pipe_open_command(char** argv, int *data_read_fd, - ws_close(sync_pipe[PIPE_READ]); - ws_close(sync_pipe[PIPE_WRITE]); - execv(argv[0], argv); -- g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", -- argv[0], g_strerror(errno)); -+ execv(argv[0], (gpointer)argv); -+ if (errno == EPERM || errno == EACCES) -+ securitymsg = "\nAre you a member of the 'wireshark' group? Try running\n'usermod -a -G wireshark _your_username_' as root."; -+ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s", -+ argv[0], g_strerror(errno), securitymsg); - sync_pipe_errmsg_to_parent(2, errmsg, ""); - - /* Exit with "_exit()", so that we don't close the connection + cap_session->error(cap_session, primary_msg, NULL); + /* the capture child will close the sync_pipe, nothing to do for now */ + /* (an error message doesn't mean we have to stop capturing) */ diff --git a/wireshark-0003-fix-string-overrun-in-plugins-profinet.patch b/wireshark-0003-fix-string-overrun-in-plugins-profinet.patch deleted file mode 100644 index 8277a8c..0000000 --- a/wireshark-0003-fix-string-overrun-in-plugins-profinet.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Peter Hatina -Date: Wed, 4 Sep 2013 10:03:57 +0200 -Subject: [PATCH] fix string overrun in plugins/profinet - - -diff --git a/plugins/epan/profinet/packet-dcom-cba.c b/plugins/epan/profinet/packet-dcom-cba.c -index 0f1658a..f7fd322 100644 ---- a/plugins/epan/profinet/packet-dcom-cba.c -+++ b/plugins/epan/profinet/packet-dcom-cba.c -@@ -555,7 +555,7 @@ dissect_ICBAPhysicalDevice_get_LogicalDevice_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) - { - guint32 u32Pointer; -- gchar szStr[1000]; -+ gchar szStr[1000] = ""; - guint32 u32MaxStr = sizeof(szStr); - gchar *call; - diff --git a/wireshark-0004-Restore-Fedora-specific-groups.patch b/wireshark-0004-Restore-Fedora-specific-groups.patch deleted file mode 100644 index 72ebf49..0000000 --- a/wireshark-0004-Restore-Fedora-specific-groups.patch +++ /dev/null @@ -1,15 +0,0 @@ -From: Peter Lemenkov -Date: Fri, 13 Sep 2013 14:36:55 +0400 -Subject: [PATCH] Restore Fedora-specific groups - -Signed-off-by: Peter Lemenkov -diff --git a/wireshark.desktop b/wireshark.desktop -index 334db48..669c6f1 100644 ---- a/wireshark.desktop -+++ b/wireshark.desktop -@@ -108,4 +108,4 @@ Terminal=false - MimeType=application/vnd.tcpdump.pcap;application/x-pcapng;application/x-snoop;application/x-iptrace;application/x-lanalyzer;application/x-nettl;application/x-radcom;application/x-etherpeek;application/x-visualnetworks;application/x-netinstobserver;application/x-5view;application/x-tektronix-rf5;application/x-micropross-mplog;application/x-apple-packetlogger;application/x-endace-erf;application/ipfix;application/x-ixia-vwr; - # Category entry according to: - # https://specifications.freedesktop.org/menu-spec/1.0/ --Categories=Network;Monitor;Qt; -+Categories=Application;Network;Monitor;Qt; diff --git a/wireshark-0005-Fix-paths-in-a-wireshark.desktop-file.patch b/wireshark-0005-Fix-paths-in-a-wireshark.desktop-file.patch deleted file mode 100644 index a762194..0000000 --- a/wireshark-0005-Fix-paths-in-a-wireshark.desktop-file.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Kenneth Soerensen -Date: Wed, 29 Jan 2014 16:04:12 +0400 -Subject: [PATCH] Fix paths in a wireshark.desktop file - - -diff --git a/wireshark.desktop b/wireshark.desktop -index 669c6f1..f7df1f3 100644 ---- a/wireshark.desktop -+++ b/wireshark.desktop -@@ -102,8 +102,8 @@ Comment[tr]=Ağ trafiği çözümleyicisi - Comment[vi]=Trình phân tích giao thông mạng - Comment[uk]=Аналізатор мережевого трафіку - Icon=wireshark --TryExec=wireshark --Exec=wireshark %f -+TryExec=/usr/bin/wireshark -+Exec=/usr/bin/wireshark %f - Terminal=false - MimeType=application/vnd.tcpdump.pcap;application/x-pcapng;application/x-snoop;application/x-iptrace;application/x-lanalyzer;application/x-nettl;application/x-radcom;application/x-etherpeek;application/x-visualnetworks;application/x-netinstobserver;application/x-5view;application/x-tektronix-rf5;application/x-micropross-mplog;application/x-apple-packetlogger;application/x-endace-erf;application/ipfix;application/x-ixia-vwr; - # Category entry according to: diff --git a/wireshark-0006-Move-tmp-to-var-tmp.patch b/wireshark-0006-Move-tmp-to-var-tmp.patch index 6a4ece9..fa13f0e 100644 --- a/wireshark-0006-Move-tmp-to-var-tmp.patch +++ b/wireshark-0006-Move-tmp-to-var-tmp.patch @@ -1,287 +1,77 @@ -From cb54210f7f02b07768cfbf49ae266d487f580e1b Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Thu, 29 Jun 2017 15:32:58 +0200 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Hatina +Date: Tue, 24 Sep 2013 10:55:09 +0200 Subject: [PATCH] Move /tmp to /var/tmp -Fedora is using tmpfs which is limited by the size of RAM, thus we need -to use different directory on different filesystem. ---- - ui/qt/about_dialog.cpp | 3 +- - ui/qt/iax2_analysis_dialog.cpp | 5 +-- - ui/qt/rtp_analysis_dialog.cpp | 5 +-- - ui/qt/rtp_audio_stream.cpp | 3 +- - wsutil/tempfile.c | 9 +++--- - wsutil/tempfile.h | 4 +-- - wsutil/wstmpdir.c | 70 ++++++++++++++++++++++++++++++++++++++++++ - wsutil/wstmpdir.h | 39 +++++++++++++++++++++++ - 8 files changed, 132 insertions(+), 11 deletions(-) - create mode 100644 wsutil/wstmpdir.c - create mode 100644 wsutil/wstmpdir.h +Fedora mounts /tmp on tmpfs, which is backed by RAM, and capture files +are routinely larger than RAM, so the default temporary directory needs +to be somewhere on disk. -diff --git a/ui/qt/about_dialog.cpp b/ui/qt/about_dialog.cpp -index 31dc581..2f74285 100644 ---- a/ui/qt/about_dialog.cpp -+++ b/ui/qt/about_dialog.cpp -@@ -26,6 +26,7 @@ - - #include "wireshark_application.h" - #include -+#include /* for get_tmp_dir() */ - - #include - #include -@@ -206,7 +206,7 @@ FolderListModel::FolderListModel(QObject * parent): - appendRow(QStringList() << tr("\"File\" dialogs") << get_last_open_dir() << tr("capture files")); - - /* temp */ -- appendRow(QStringList() << tr("Temp") << g_get_tmp_dir() << tr("untitled capture files")); -+ appendRow(QStringList() << tr("Temp") << get_tmp_dir() << tr("untitled capture files")); - - /* pers conf */ - appendRow(QStringList() << tr("Personal configuration") -diff --git a/ui/qt/iax2_analysis_dialog.cpp b/ui/qt/iax2_analysis_dialog.cpp -index ee4e5fd..fe17a95 100644 ---- a/ui/qt/iax2_analysis_dialog.cpp -+++ b/ui/qt/iax2_analysis_dialog.cpp -@@ -37,6 +37,7 @@ - #include "ui/rtp_stream.h" - #endif - #include -+#include /* for get_tmp_dir() */ - - #include - #include -@@ -271,10 +272,10 @@ Iax2AnalysisDialog::Iax2AnalysisDialog(QWidget &parent, CaptureFile &cf) : - - // We keep our temp files open for the lifetime of the dialog. The GTK+ - // UI opens and closes at various points. -- QString tempname = QString("%1/wireshark_iax2_f").arg(QDir::tempPath()); -+ QString tempname = QString("%1/wireshark_iax2_f").arg(get_tmp_dir()); - fwd_tempfile_ = new QTemporaryFile(tempname, this); - fwd_tempfile_->open(); -- tempname = QString("%1/wireshark_iax2_r").arg(QDir::tempPath()); -+ tempname = QString("%1/wireshark_iax2_r").arg(get_tmp_dir()); - rev_tempfile_ = new QTemporaryFile(tempname, this); - rev_tempfile_->open(); - -diff --git a/ui/qt/rtp_analysis_dialog.cpp b/ui/qt/rtp_analysis_dialog.cpp -index 5d82e46..8008984 100644 ---- a/ui/qt/rtp_analysis_dialog.cpp -+++ b/ui/qt/rtp_analysis_dialog.cpp -@@ -37,6 +37,7 @@ - - #include - #include -+#include /* for get_tmp_dir() */ - - #include - #include -@@ -331,10 +332,10 @@ RtpAnalysisDialog::RtpAnalysisDialog(QWidget &parent, CaptureFile &cf, struct _r - - // We keep our temp files open for the lifetime of the dialog. The GTK+ - // UI opens and closes at various points. -- QString tempname = QString("%1/wireshark_rtp_f").arg(QDir::tempPath()); -+ QString tempname = QString("%1/wireshark_rtp_f").arg(get_tmp_dir()); - fwd_tempfile_ = new QTemporaryFile(tempname, this); - fwd_tempfile_->open(); -- tempname = QString("%1/wireshark_rtp_r").arg(QDir::tempPath()); -+ tempname = QString("%1/wireshark_rtp_r").arg(get_tmp_dir()); - rev_tempfile_ = new QTemporaryFile(tempname, this); - rev_tempfile_->open(); - -diff --git a/ui/qt/rtp_audio_stream.cpp b/ui/qt/rtp_audio_stream.cpp -index fde66c8..b9531d2 100644 ---- a/ui/qt/rtp_audio_stream.cpp -+++ b/ui/qt/rtp_audio_stream.cpp -@@ -37,6 +37,7 @@ - #include - - #include -+#include /* for get_tmp_dir() */ - - #include - #include -@@ -76,7 +77,7 @@ RtpAudioStream::RtpAudioStream(QObject *parent, _rtp_stream_info *rtp_stream) : - visual_sample_rate_, SPEEX_RESAMPLER_QUALITY_MIN, NULL); - speex_resampler_skip_zeros(visual_resampler_); - -- QString tempname = QString("%1/wireshark_rtp_stream").arg(QDir::tempPath()); -+ QString tempname = QString("%1/wireshark_rtp_stream").arg(get_tmp_dir()); - tempfile_ = new QTemporaryFile(tempname, this); - tempfile_->open(); - -diff --git a/wsutil/tempfile.c b/wsutil/tempfile.c -index 8e1f8dc..dcf2f78 100644 ---- a/wsutil/tempfile.c -+++ b/wsutil/tempfile.c -@@ -36,6 +36,7 @@ - - #include "tempfile.h" - #include -+#include /* for get_tmp_dir() */ - - #ifndef __set_errno - #define __set_errno(x) errno=(x) -@@ -83,13 +83,14 @@ mkstemps(char *path_template, int suffixlen) - */ - char *get_tempfile_path(const char *filename) - { -- return g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", g_get_tmp_dir(), filename); -+ return g_strdup_printf("%s" G_DIR_SEPARATOR_S "%s", get_tmp_dir(), filename); - } - - #define MAX_TEMPFILES 3 - - /** -- * Create a tempfile with the given prefix (e.g. "wireshark"). -+ * Create a tempfile with the given prefix (e.g. "wireshark"). The path -+ * is created using get_tmp_dir and mkdtemp - * - * @param namebuf If not NULL, receives the full path of the temp file. - * Should NOT be freed. -@@ -199,7 +200,7 @@ create_tempfile(char **namebuf, const char *pfx, const char *sfx) - tf[idx].path = (char *)g_malloc(tf[idx].len); - } - -- tmp_dir = g_get_tmp_dir(); -+ tmp_dir = get_tmp_dir(); - +Set TMPDIR in configuration_init(), which every program calls early in +main(). TMPDIR is the one knob that GLib (g_get_tmp_dir()), Qt +(QDir::tempPath()) and child processes such as dumpcap all read, so one +default covers every temporary file rather than the handful of call +sites a per-site patch can reach. A TMPDIR already in the environment is +left alone. + +Only TMPDIR is consulted, and an empty one counts as unset - that is +exactly how GLib and Qt behave on Unix, where TMP and TEMP are ignored +entirely. + +The change is Peter Hatina's, from 2013; the implementation above was +rewritten in 2026 and the original is worth recording. It added +wsutil/wstmpdir.{c,h} - a copy of g_get_tmp_dir() with a /var/tmp +fallback, exported from libwsutil as get_tmp_dir() - and rewrote +create_tempfile() around it. + +That reached three of the roughly seventeen places that ask for a +temporary directory, missing the second temporary file in +rtp_audio_file.cpp, the export-object and traffic-tab dialogs, tshark's +own default, wsutil/socket.c and create_tempdir(). It also worked only +by accident: P_tmpdir is "/tmp" on glibc and was tested ahead of the +/var/tmp default, so the fallback was reached purely because +wstmpdir.c never included . Adding that one header would have +silently restored /tmp. + +Setting TMPDIR keeps Peter's intent and drops all of that. + +Rewritten-by: Peter Lemenkov +Assisted-by: Claude + +diff --git a/wsutil/filesystem.c b/wsutil/filesystem.c +index f1c7358a97..6ee028cb71 100644 +--- a/wsutil/filesystem.c ++++ b/wsutil/filesystem.c +@@ -932,6 +932,32 @@ configuration_init(const char* arg0) #ifdef _WIN32 - _tzset(); -diff --git a/wsutil/tempfile.h b/wsutil/tempfile.h -index 1dca2df..bb3160c 100644 ---- a/wsutil/tempfile.h -+++ b/wsutil/tempfile.h -@@ -45,7 +45,7 @@ WS_DLL_PUBLIC char *get_tempfile_path(const char *filename); - - /** - * Create a tempfile with the given prefix (e.g. "wireshark"). The path -- * is created using g_get_tmp_dir and mkstemp. -+ * is created using get_tmp_dir and mkstemp. - * - * @param namebuf [in,out] If not NULL, receives the full path of the temp file. - * Must NOT be freed. -diff --git a/wsutil/wstmpdir.c b/wsutil/wstmpdir.c -new file mode 100644 -index 0000000..d8b733b ---- /dev/null -+++ b/wsutil/wstmpdir.c -@@ -0,0 +1,70 @@ -+/* wstmpdir.c -+ * -+ * Copyright (C) 2013 Red Hat, Inc. All right reserved. -+ * -+ * Temporary directory routine -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2 -+ * of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Author: Peter Hatina -+ */ + return configuration_init_w32(arg0); + #else ++ /* ++ * Fedora mounts /tmp on tmpfs, which is backed by RAM, and capture ++ * files are routinely larger than RAM. Default the temporary ++ * directory to /var/tmp unless the user has asked for something else. ++ * ++ * TMPDIR is the one knob that GLib (g_get_tmp_dir()), Qt ++ * (QDir::tempPath()) and child processes such as dumpcap all read on ++ * this platform, so setting it here covers every temporary file the ++ * programs create without having to touch each call site. It has to ++ * happen before any of them run, and configuration_init() is among ++ * the first things every program calls. ++ * ++ * Only TMPDIR is consulted. TMP and TEMP are Windows spellings that ++ * neither GLib nor Qt looks at on Unix, so honouring them here would ++ * promise something the rest of the code cannot keep. ++ * ++ * An empty TMPDIR counts as unset, which is how both GLib and Qt ++ * treat it - otherwise it would suppress this default and leave them ++ * falling back to /tmp, the one outcome nobody asked for. ++ */ ++ const char *tmpdir = g_getenv("TMPDIR"); + -+#include "config.h" -+ -+#include -+#include "wstmpdir.h" -+ -+/** -+ * Gets the directory to use for temporary files. -+ * -+ * Inspired by glib-2.0. If no TMP, TEMP or TMPDIR is set, -+ * /var/tmp is returned (Fedora specific). -+ * -+ * Returns: the directory to use for temporary files. -+ */ -+const char *get_tmp_dir(void) -+{ -+ static gchar *tmp_dir; -+ -+ if (g_once_init_enter(&tmp_dir)) { -+ gchar *tmp; -+ -+ tmp = g_strdup(g_getenv("TEMP")); -+ if (tmp == NULL || *tmp == '\0') { -+ g_free(tmp); -+ tmp = g_strdup(g_getenv("TMPDIR")); -+ } -+ -+#ifdef P_tmpdir -+ if (tmp == NULL || *tmp == '\0') { -+ gsize k; -+ g_free(tmp); -+ tmp = g_strdup(P_tmpdir); -+ k = strlen(tmp); -+ if (k > 1 && G_IS_DIR_SEPARATOR(tmp[k - 1])) -+ tmp[k - 1] = '\0'; -+ } -+#endif /* P_tmpdir */ -+ -+ if (tmp == NULL || *tmp == '\0') { -+ g_free(tmp); -+ tmp = g_strdup("/var/tmp"); -+ } -+ -+ g_once_init_leave(&tmp_dir, tmp); ++ if (tmpdir == NULL || tmpdir[0] == '\0') { ++ g_setenv("TMPDIR", "/var/tmp", true); + } + -+ return tmp_dir; -+} -diff --git a/wsutil/wstmpdir.h b/wsutil/wstmpdir.h -new file mode 100644 -index 0000000..07ac583 ---- /dev/null -+++ b/wsutil/wstmpdir.h -@@ -0,0 +1,39 @@ -+/* wstmpdir.c -+ * -+ * Copyright (C) 2013 Red Hat, Inc. All right reserved. -+ * -+ * Temporary directory routine -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2 -+ * of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Author: Peter Hatina -+ */ -+ -+#ifndef __WS_TMP_DIR_H__ -+#define __WS_TMP_DIR_H__ -+ -+#include "ws_symbol_export.h" -+ -+#ifdef __cplusplus -+extern "C" { -+#endif // __cplusplus -+ -+WS_DLL_PUBLIC const char *get_tmp_dir(void); -+ -+#ifdef __cplusplus -+} -+#endif // __cplusplus -+ -+#endif --- -2.13.0 - + return configuration_init_posix(arg0); + #endif + } diff --git a/wireshark-0007-cmakelists.patch b/wireshark-0007-cmakelists.patch deleted file mode 100644 index 870c9a4..0000000 --- a/wireshark-0007-cmakelists.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt -index 0367cd1..6382a2c 100644 ---- a/wsutil/CMakeLists.txt -+++ b/wsutil/CMakeLists.txt -@@ -69,6 +69,7 @@ set(WSUTIL_PUBLIC_HEADERS - ws_mempbrk_int.h - ws_pipe.h - ws_printf.h -+ wstmpdir.h - wsjson.h - xtea.h - ) -@@ -118,6 +118,7 @@ set(WSUTIL_COMMON_FILES - unicode-utils.c - ws_mempbrk.c - ws_pipe.c -+ wstmpdir.c - wsgcrypt.c - wsjson.c - xtea.c diff --git a/wireshark-0009-remove-strato-manpages.patch b/wireshark-0009-remove-strato-manpages.patch new file mode 100644 index 0000000..d8f65e8 --- /dev/null +++ b/wireshark-0009-remove-strato-manpages.patch @@ -0,0 +1,257 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Lemenkov +Date: Tue, 8 Sep 2026 19:49:08 +0200 +Subject: [PATCH] Docs: Build a manual page only when its program is built + +The manual pages are added to the build unconditionally, so a build +configured without a program still generates, installs and packages +that program's page. + +The default configuration shows it. BUILD_stratoshark is OFF by +default, yet stratoshark(1), strato(1), falcodump(1), sshdig(1) and +dumpcalls(1) are built and installed anyway, along with the Stratoshark +release notes, documenting programs that were never compiled. The same +goes for anything else switched off: randpktdump(1) survives +-DBUILD_randpktdump=OFF, and etwdump(1) is installed on every platform, +though the program it describes is built only on Windows. + +Guard each page on the condition its program is built under, which is +what dpauxmon, sdjournal and mmdbresolve already do a few lines further +down. That means the dependency as well as the option, so sshdump, +ciscodump, wifidump and sshdig follow LIBSSH_FOUND and falcodump and +dumpcalls follow SINSP_FOUND, exactly as extcap/CMakeLists.txt builds +them. Extend the same to the HTML pages in DOC_FILES, where falcodump +and dumpcalls were already guarded and the rest were not, and to the +Stratoshark release notes. + +sshdig moves to the stratoshark package in the Debian packaging. It is +a Stratoshark extcap, installed into STRATOSHARK_EXTCAP_INSTALL_LIBDIR +and shipped with stratoshark, but its manual page was listed in +wireshark-common. That was already wrong - a default build has no +sshdig binary in that package - and it becomes a build failure once the +page is only generated when the program is: + + dh_installman: error: Cannot find (any matches for) + "obj-*/doc/man_pages/sshdig.1" (tried in ., debian/tmp) + +Pages for things that are always built - wireshark, tshark, capinfos, +captype, dumpcap, editcap, mergecap, randpkt, rawshark, reordercap, +sharkd, text2pcap and the section 4 pages - stay unconditional. + +Assisted-by: Claude +Signed-off-by: Peter Lemenkov + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2129bd0b22..e467cfdb1f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2281,33 +2281,60 @@ endif() + + if (ASCIIDOCTOR_FOUND) + list(APPEND DOC_FILES +- ${CMAKE_BINARY_DIR}/doc/man_pages/androiddump.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/udpdump.html + ${CMAKE_BINARY_DIR}/doc/man_pages/capinfos.html + ${CMAKE_BINARY_DIR}/doc/man_pages/captype.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/ciscodump.html + ${CMAKE_BINARY_DIR}/doc/man_pages/dumpcap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/editcap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/extcap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/mergecap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/randpkt.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/randpktdump.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/etwdump.html + ${CMAKE_BINARY_DIR}/doc/man_pages/rawshark.html + ${CMAKE_BINARY_DIR}/doc/man_pages/reordercap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/sharkd.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/sshdig.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/sshdump.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/strato.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/stratoshark.html +- ${CMAKE_BINARY_DIR}/doc/man_pages/wifidump.html + ${CMAKE_BINARY_DIR}/doc/man_pages/text2pcap.html + ${CMAKE_BINARY_DIR}/doc/man_pages/tshark.html + ${CMAKE_BINARY_DIR}/doc/man_pages/wireshark.html + ${CMAKE_BINARY_DIR}/doc/man_pages/wireshark-filter.html + "${CMAKE_BINARY_DIR}/doc/Wireshark Release Notes.html" +- "${CMAKE_BINARY_DIR}/doc/Stratoshark Release Notes.html" + ) ++ ++ # ++ # As with the manual pages themselves, only install the HTML for a ++ # program that is actually built. ++ # ++ if(BUILD_stratoshark) ++ list(APPEND DOC_FILES ++ ${CMAKE_BINARY_DIR}/doc/man_pages/stratoshark.html ++ "${CMAKE_BINARY_DIR}/doc/Stratoshark Release Notes.html" ++ ) ++ endif() ++ if(BUILD_strato) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/strato.html) ++ endif() ++ if(BUILD_androiddump) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/androiddump.html) ++ endif() ++ if(BUILD_ciscodump AND LIBSSH_FOUND) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/ciscodump.html) ++ endif() ++ if(BUILD_etwdump AND WIN32) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/etwdump.html) ++ endif() ++ if(BUILD_randpktdump) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/randpktdump.html) ++ endif() ++ if(BUILD_sshdig AND LIBSSH_FOUND) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/sshdig.html) ++ endif() ++ if(BUILD_sshdump AND LIBSSH_FOUND) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/sshdump.html) ++ endif() ++ if(BUILD_udpdump) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/udpdump.html) ++ endif() ++ if(BUILD_wifidump AND LIBSSH_FOUND) ++ list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/wifidump.html) ++ endif() + if(MAXMINDDB_FOUND) + list(APPEND DOC_FILES ${CMAKE_BINARY_DIR}/doc/man_pages/mmdbresolve.html) + endif() +diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt +index a92ed452fe..7a05821b4c 100644 +--- a/doc/CMakeLists.txt ++++ b/doc/CMakeLists.txt +@@ -40,28 +40,70 @@ endmacro() + + ADD_MAN_PAGE(wireshark 1) + ADD_MAN_PAGE(tshark 1) +-ADD_MAN_PAGE(stratoshark 1) +-ADD_MAN_PAGE(strato 1) + +-ADD_MAN_PAGE(androiddump 1) + ADD_MAN_PAGE(capinfos 1) + ADD_MAN_PAGE(captype 1) +-ADD_MAN_PAGE(ciscodump 1) + ADD_MAN_PAGE(dumpcap 1) + ADD_MAN_PAGE(editcap 1) +-ADD_MAN_PAGE(etwdump 1) +-ADD_MAN_PAGE(falcodump 1) + ADD_MAN_PAGE(mergecap 1) + ADD_MAN_PAGE(randpkt 1) +-ADD_MAN_PAGE(randpktdump 1) + ADD_MAN_PAGE(rawshark 1) + ADD_MAN_PAGE(reordercap 1) + ADD_MAN_PAGE(sharkd 1) +-ADD_MAN_PAGE(sshdig 1) +-ADD_MAN_PAGE(sshdump 1) + ADD_MAN_PAGE(text2pcap 1) +-ADD_MAN_PAGE(udpdump 1) +-ADD_MAN_PAGE(wifidump 1) ++ ++# ++# A program that is not built should not leave a manual page behind for ++# it. Each of these follows the option that decides whether the program ++# is built, the same way dpauxmon, sdjournal and mmdbresolve do below. ++# ++if(BUILD_stratoshark) ++ ADD_MAN_PAGE(stratoshark 1) ++endif() ++ ++if(BUILD_strato) ++ ADD_MAN_PAGE(strato 1) ++endif() ++ ++if(BUILD_androiddump) ++ ADD_MAN_PAGE(androiddump 1) ++endif() ++ ++if(BUILD_ciscodump AND LIBSSH_FOUND) ++ ADD_MAN_PAGE(ciscodump 1) ++endif() ++ ++if(BUILD_dumpcalls AND SINSP_FOUND) ++ ADD_MAN_PAGE(dumpcalls 1) ++endif() ++ ++if(BUILD_etwdump AND WIN32) ++ ADD_MAN_PAGE(etwdump 1) ++endif() ++ ++if(BUILD_falcodump AND SINSP_FOUND) ++ ADD_MAN_PAGE(falcodump 1) ++endif() ++ ++if(BUILD_randpktdump) ++ ADD_MAN_PAGE(randpktdump 1) ++endif() ++ ++if(BUILD_sshdig AND LIBSSH_FOUND) ++ ADD_MAN_PAGE(sshdig 1) ++endif() ++ ++if(BUILD_sshdump AND LIBSSH_FOUND) ++ ADD_MAN_PAGE(sshdump 1) ++endif() ++ ++if(BUILD_udpdump) ++ ADD_MAN_PAGE(udpdump 1) ++endif() ++ ++if(BUILD_wifidump AND LIBSSH_FOUND) ++ ADD_MAN_PAGE(wifidump 1) ++endif() + + ADD_MAN_PAGE(extcap 4) + ADD_MAN_PAGE(wireshark-filter 4) +@@ -112,13 +154,17 @@ endif() + if(ASCIIDOCTOR_FOUND) + ASCIIDOCTOR2HTML("Wireshark_Release_Notes.adoc" CONVERT_UNDERSCORES) + ASCIIDOCTOR2TXT("Wireshark_Release_Notes.adoc" CONVERT_UNDERSCORES) +- ASCIIDOCTOR2HTML("Stratoshark_Release_Notes.adoc" CONVERT_UNDERSCORES) +- ASCIIDOCTOR2TXT("Stratoshark_Release_Notes.adoc" CONVERT_UNDERSCORES) ++ set(RELEASE_NOTES_HTML "${CMAKE_CURRENT_BINARY_DIR}/Wireshark Release Notes.html") ++ ++ # Only the release notes for something that was built. ++ if(BUILD_stratoshark) ++ ASCIIDOCTOR2HTML("Stratoshark_Release_Notes.adoc" CONVERT_UNDERSCORES) ++ list(APPEND RELEASE_NOTES_HTML "${CMAKE_CURRENT_BINARY_DIR}/Stratoshark Release Notes.html") ++ endif() + + add_custom_target(release_notes_html + DEPENDS +- "${CMAKE_CURRENT_BINARY_DIR}/Wireshark Release Notes.html" +- "${CMAKE_CURRENT_BINARY_DIR}/Stratoshark Release Notes.html" ++ ${RELEASE_NOTES_HTML} + ) + set_target_properties(release_notes_html PROPERTIES FOLDER "Documentation") + +@@ -166,8 +212,7 @@ if(ASCIIDOCTOR_FOUND) + install( + FILES + ${HTML_INSTALL_FILES} +- "${CMAKE_CURRENT_BINARY_DIR}/Wireshark Release Notes.html" +- "${CMAKE_CURRENT_BINARY_DIR}/Stratoshark Release Notes.html" ++ ${RELEASE_NOTES_HTML} + DESTINATION + ${CMAKE_INSTALL_DOCDIR} + COMPONENT "ReleaseNotes" +diff --git a/packaging/debian/stratoshark.manpages b/packaging/debian/stratoshark.manpages +index 4f27313b47..f13fa2d55d 100644 +--- a/packaging/debian/stratoshark.manpages ++++ b/packaging/debian/stratoshark.manpages +@@ -1,2 +1,3 @@ + usr/share/man/man1/strato.1 + usr/share/man/man1/stratoshark.1 ++usr/share/man/man1/sshdig.1 +diff --git a/packaging/debian/wireshark-common.manpages b/packaging/debian/wireshark-common.manpages +index 9c7ce5956c..974e970e28 100644 +--- a/packaging/debian/wireshark-common.manpages ++++ b/packaging/debian/wireshark-common.manpages +@@ -13,7 +13,6 @@ obj-*/doc/man_pages/androiddump.1 + obj-*/doc/man_pages/ciscodump.1 + obj-*/doc/man_pages/randpktdump.1 + obj-*/doc/man_pages/udpdump.1 +-obj-*/doc/man_pages/sshdig.1 + obj-*/doc/man_pages/sshdump.1 + obj-*/doc/man_pages/wifidump.1 + obj-*/doc/man_pages/extcap.4 diff --git a/wireshark.spec b/wireshark.spec index f2258e1..55cddff 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -1,30 +1,30 @@ +%undefine __cmake_in_source_build %global with_lua 1 %global with_maxminddb 1 -%global plugins_version 3.2 +%global with_pytools 1 +%global plugins_version 4.6 + +%bcond http3 %[0%{?fedora} >= 43] Summary: Network traffic analyzer Name: wireshark -Version: 3.2.3 +Version: 4.6.8 Release: 1%{?dist} Epoch: 1 -License: GPL+ +License: BSD-1-Clause AND BSD-2-Clause AND BSD-3-Clause AND MIT AND GPL-2.0-or-later AND LGPL-2.0-or-later AND Zlib AND ISC AND (BSD-3-Clause OR GPL-2.0-only) AND (GPL-2.0-or-later AND Zlib) Url: http://www.wireshark.org/ Source0: https://wireshark.org/download/src/%{name}-%{version}.tar.xz Source1: https://www.wireshark.org/download/src/all-versions/SIGNATURES-%{version}.txt Source2: 90-wireshark-usbmon.rules +Source3: wireshark.sysusers # Fedora-specific -Patch2: wireshark-0002-Customize-permission-denied-error.patch -# Will be proposed upstream -Patch3: wireshark-0003-fix-string-overrun-in-plugins-profinet.patch +Patch2: wireshark-0002-Customize-permission-denied-error.patch # Fedora-specific -Patch4: wireshark-0004-Restore-Fedora-specific-groups.patch -# Fedora-specific -Patch5: wireshark-0005-Fix-paths-in-a-wireshark.desktop-file.patch -# Fedora-specific -Patch6: wireshark-0006-Move-tmp-to-var-tmp.patch -Patch7: wireshark-0007-cmakelists.patch +Patch6: wireshark-0006-Move-tmp-to-var-tmp.patch +# Proposed upstream - https://gitlab.com/wireshark/wireshark/-/merge_requests/26425 +Patch9: wireshark-0009-remove-strato-manpages.patch #install tshark together with wireshark GUI Requires: %{name}-cli = %{epoch}:%{version}-%{release} @@ -54,31 +54,52 @@ BuildRequires: desktop-file-utils BuildRequires: xdg-utils BuildRequires: bison BuildRequires: flex -BuildRequires: pcre-devel BuildRequires: perl(Pod::Html) BuildRequires: perl(Pod::Man) -Buildrequires: libssh-devel -BuildRequires: qt5-linguist -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-qtmultimedia-devel -BuildRequires: qt5-qtsvg-devel +BuildRequires: perl(open) +BuildRequires: pcre2-devel +Buildrequires: libssh-devel +BuildRequires: qt6-qttools-devel +BuildRequires: qt6-linguist +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qt5compat-devel +BuildRequires: qt6-qtmultimedia-devel +BuildRequires: qt6-qtsvg-devel +BuildRequires: qt6-qtimageformats BuildRequires: zlib-devel +BuildRequires: asciidoctor %if %{with_maxminddb} && 0%{?fedora} BuildRequires: libmaxminddb-devel %endif %if %{with_lua} && 0%{?fedora} -BuildRequires: compat-lua-devel +BuildRequires: lua-devel %endif -Buildrequires: git -%if 0%{?fedora} -Buildrequires: python3-devel -%endif -Buildrequires: cmake +Buildrequires: git-core +Buildrequires: python3-devel +Buildrequires: cmake +Buildrequires: speexdsp-devel #needed for sdjournal external capture interface -BuildRequires: systemd-devel -BuildRequires: libnghttp2-devel +BuildRequires: systemd-devel +BuildRequires: libnghttp2-devel +%if %{with http3} +BuildRequires: libnghttp3-devel +%endif +BuildRequires: systemd-rpm-macros +BuildRequires: lz4-devel +BuildRequires: snappy-devel +BuildRequires: brotli-devel +BuildRequires: opus-devel +BuildRequires: sbc-devel +%if 0%{?fedora} +BuildRequires: ilbc-devel +BuildRequires: opencore-amr-devel +# bcg729 for G.729 +BuildRequires: bcg729-devel +# spandsp for G.722 and G.726 +BuildRequires: spandsp-devel +# wireshark needs the -compat package +%endif -Obsoletes: wireshark-qt, wireshark-gtk %description Wireshark allows you to examine protocol data stored in files or as it is @@ -93,8 +114,6 @@ transferred over HTTP or CIFS, or play back an RTP audio stream. %package cli Summary: Network traffic analyzer -Requires(pre): shadow-utils -Requires(post): systemd-udev %description cli This package contains command-line utilities, plugins, and documentation for @@ -102,7 +121,14 @@ Wireshark. %package devel Summary: Development headers and libraries for wireshark -Requires: %{name} = %{epoch}:%{version}-%{release} glibc-devel glib2-devel +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-cli = %{epoch}:%{version}-%{release} +Requires: glibc-devel +Requires: glib2-devel +%if %{with_pytools} && 0%{?fedora} +Requires: python3-ply +Requires: omniORB-devel +%endif %description devel The wireshark-devel package contains the header files, developer @@ -128,77 +154,75 @@ and plugins. -DBUILD_mmdbresolve=OFF \ %endif -DBUILD_randpktdump=OFF \ - -DBUILD_androiddump=OFF \ + -DBUILD_androiddump=ON \ -DENABLE_SMI=ON \ + -DUSE_qt6=ON \ -DENABLE_PLUGINS=ON \ -DENABLE_NETLINK=ON \ -DBUILD_dcerpcidl2wrs=OFF \ -DBUILD_sdjournal=ON \ - . + -DBUILD_stratoshark=OFF -make %{?_smp_mflags} +%cmake_build %install -make DESTDIR=%{buildroot} install +%cmake_install +%cmake_install --component Development -desktop-file-validate %{buildroot}%{_datadir}/applications/wireshark.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/org.wireshark.Wireshark.desktop #install devel files (inspired by debian/wireshark-dev.header-files) install -d -m 0755 %{buildroot}%{_includedir}/wireshark +install -m 0644 %{__cmake_builddir}/config.h %{buildroot}%{_includedir}/wireshark/config.h IDIR="%{buildroot}%{_includedir}/wireshark" -mkdir -p "${IDIR}/epan" -mkdir -p "${IDIR}/epan/crypt" -mkdir -p "${IDIR}/epan/ftypes" -mkdir -p "${IDIR}/epan/dfilter" -mkdir -p "${IDIR}/epan/dissectors" -mkdir -p "${IDIR}/epan/wmem" -mkdir -p "${IDIR}/wiretap" -mkdir -p "${IDIR}/wsutil" mkdir -p %{buildroot}%{_udevrulesdir} -install -m 644 config.h epan/register.h "${IDIR}/" -install -m 644 cfile.h file.h "${IDIR}/" -install -m 644 ws_symbol_export.h "${IDIR}/" -install -m 644 epan/*.h "${IDIR}/epan/" -install -m 644 epan/crypt/*.h "${IDIR}/epan/crypt" -install -m 644 epan/ftypes/*.h "${IDIR}/epan/ftypes" -install -m 644 epan/dfilter/*.h "${IDIR}/epan/dfilter" -install -m 644 epan/dissectors/*.h "${IDIR}/epan/dissectors" -install -m 644 epan/wmem/*.h "${IDIR}/epan/wmem" -install -m 644 wiretap/*.h "${IDIR}/wiretap" -install -m 644 wsutil/*.h "${IDIR}/wsutil" -install -m 644 ws_diag_control.h "${IDIR}/" -install -m 644 %{SOURCE2} %{buildroot}%{_udevrulesdir} +install -m 0644 %{SOURCE2} %{buildroot}%{_udevrulesdir} +install -Dpm 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/%{name}.conf + +%if %{with_pytools} && 0%{?fedora} +#install asn2wrs.py, idl2wrs and make-plugin-reg.py tools +mkdir -p %{buildroot}%{_libexecdir}/wireshark/pytools +install -m 0755 tools/asn2wrs.py %{buildroot}%{_libexecdir}/wireshark/pytools/ +install -m 0755 tools/make-plugin-reg.py %{buildroot}%{_libexecdir}/wireshark/pytools/ +install -m 0755 tools/idl2wrs %{buildroot}%{_libexecdir}/wireshark/pytools/ + +#install idl2wrs dependent scripts +install -m 0644 tools/wireshark_be.py %{buildroot}%{_libexecdir}/wireshark/pytools/ +install -m 0644 tools/wireshark_gen.py %{buildroot}%{_libexecdir}/wireshark/pytools/ +%endif touch %{buildroot}%{_bindir}/%{name} # Remove libtool archives and static libs find %{buildroot} -type f -name "*.la" -delete -%pre cli -getent group wireshark >/dev/null || groupadd -r wireshark -getent group usbmon >/dev/null || groupadd -r usbmon %post cli %{?ldconfig} -/usr/bin/udevadm trigger --subsystem-match=usbmon +# skip triggering if udevd isn't even accessible, e.g. containers or +# rpm-ostree-based systems +if [ -S /run/udev/control ]; then + /usr/bin/udevadm trigger --subsystem-match=usbmon || : +fi %ldconfig_postun cli %files -%{_datadir}/appdata/%{name}.appdata.xml -%{_datadir}/applications/wireshark.desktop +%{_datadir}/applications/org.wireshark.Wireshark.desktop +%{_datadir}/metainfo/*.xml +%{_datadir}/mime/packages/*.xml %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/icons/hicolor/*/mimetypes/* -%{_datadir}/mime/packages/wireshark.xml %{_bindir}/wireshark %{_mandir}/man1/wireshark.* %files cli %license COPYING -%doc AUTHORS INSTALL NEWS README* +%doc AUTHORS INSTALL README* %{_bindir}/capinfos %{_bindir}/captype %{_bindir}/editcap +%{_bindir}/dftest %{_bindir}/mergecap %{_bindir}/randpkt %{_bindir}/reordercap @@ -212,16 +236,22 @@ getent group usbmon >/dev/null || groupadd -r usbmon %{_bindir}/rawshark %{_udevrulesdir}/90-wireshark-usbmon.rules %{_libdir}/lib*.so.* -%dir %{_libdir}/wireshark -%dir %{_libdir}/wireshark/extcap +%dir %{_libexecdir}/wireshark +%dir %{_libexecdir}/wireshark/extcap %dir %{_libdir}/wireshark/plugins -%{_libdir}/wireshark/extcap/ciscodump -%{_libdir}/wireshark/extcap/udpdump -%{_libdir}/wireshark/extcap/sshdump -%{_libdir}/wireshark/extcap/sdjournal -%{_libdir}/wireshark/extcap/dpauxmon -%{_libdir}/wireshark/cmake/*.cmake +%dir %{_libdir}/wireshark +%{_libexecdir}/wireshark/extcap/ciscodump +%{_libexecdir}/wireshark/extcap/udpdump +%{_libexecdir}/wireshark/extcap/wifidump +%{_libexecdir}/wireshark/extcap/sshdump +%{_libexecdir}/wireshark/extcap/sdjournal +%{_libexecdir}/wireshark/extcap/dpauxmon +%{_libexecdir}/wireshark/extcap/androiddump #the version wireshark uses to store plugins is only x.y, not .z +%dir %{_libdir}/wireshark/plugins/%{plugins_version} +%dir %{_libdir}/wireshark/plugins/%{plugins_version}/epan +%dir %{_libdir}/wireshark/plugins/%{plugins_version}/wiretap +%dir %{_libdir}/wireshark/plugins/%{plugins_version}/codecs %{_libdir}/wireshark/plugins/%{plugins_version}/epan/*.so %{_libdir}/wireshark/plugins/%{plugins_version}/wiretap/*.so %{_libdir}/wireshark/plugins/%{plugins_version}/codecs/*.so @@ -233,36 +263,327 @@ getent group usbmon >/dev/null || groupadd -r usbmon %{_mandir}/man1/dumpcap.* %{_mandir}/man4/wireshark-filter.* %{_mandir}/man1/rawshark.* -%{_mandir}/man1/dftest.* %{_mandir}/man1/randpkt.* %{_mandir}/man1/reordercap.* %{_mandir}/man1/sshdump.* %{_mandir}/man1/udpdump.* +%{_mandir}/man1/wifidump.* %{_mandir}/man1/androiddump.* %{_mandir}/man1/captype.* %{_mandir}/man1/ciscodump.* -%{_mandir}/man1/randpktdump.* %{_mandir}/man1/dpauxmon.* %{_mandir}/man1/sdjournal.* +%{_mandir}/man1/sharkd.* %{_mandir}/man4/extcap.* +%{_datadir}/doc/wireshark/* + %if %{with_maxminddb} && 0%{?fedora} %{_mandir}/man1/mmdbresolve.* %endif %dir %{_datadir}/wireshark %{_datadir}/wireshark/* -%{_docdir}/wireshark/*.html +%{_sysusersdir}/%{name}.conf %files devel %doc doc/README.* ChangeLog -%{_includedir}/wireshark +%dir %{_includedir}/wireshark +%{_includedir}/wireshark/* %{_libdir}/lib*.so %{_libdir}/pkgconfig/%{name}.pc +%{_libdir}/cmake/%{name}/*.cmake +%if %{with_pytools} && 0%{?fedora} +%dir %{_libexecdir}/wireshark/pytools +%{_libexecdir}/wireshark/pytools/*.py +%{_libexecdir}/wireshark/pytools/idl2wrs +%endif %changelog +* Wed Sep 9 2026 Peter Lemenkov - 1:4.6.8-1 +- New version 4.6.8 + +* Tue Sep 08 2026 Peter Lemenkov - 1:4.6.7-3 +- Rewrite the /var/tmp patch to set TMPDIR in configuration_init() rather + than add wsutil/wstmpdir.{c,h} and rewrite create_tempfile(). TMPDIR is + read by GLib, by Qt and by child processes such as dumpcap, so one + default now covers every temporary file instead of three of the roughly + seventeen places that ask for a temporary directory +- Drop wireshark-0007-cmakelists.patch, which existed only to build the + files the rewrite removes +- Drop the stray wireshark-0003 patch, applied upstream in 0bc06ec1086 and + unreferenced by the spec since 4.6.0 + +* Fri Jul 17 2026 Fedora Release Engineering - 1:4.6.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Tue Jul 14 2026 Michal Ruprich - 1:4.6.7-1 +- New version 4.6.7 + +* Sat Jun 13 2026 Yaakov Selkowitz - 1:4.6.6-2 +- Rebuilt for openssl 4.0 + +* Mon Jun 01 2026 Michal Ruprich - 1:4.6.6-1 +- New version 4.6.6 + +* Wed Mar 11 2026 Michal Ruprich - 1:4.6.4-2 +- Python tools should only be shipped in Fedora + +* Wed Mar 04 2026 Michal Ruprich - 1:4.6.4-1 +- New version 4.6.4 + +* Sat Jan 17 2026 Fedora Release Engineering - 1:4.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jan 15 2026 Michal Ruprich - 1:4.6.3-1 +- New version 4.6.3 + +* Thu Dec 11 2025 Yaakov Selkowitz - 1:4.6.1-3 +- Enable HTTP/3 support on F43+ only + +* Tue Dec 09 2025 Alexey Kurov - 1:4.6.1-2 +- BuildRequires: libnghttp3-devel - needed for HTTP3 support + +* Thu Nov 27 2025 Michal Ruprich - 1:4.6.1-1 +- New version 4.6.1 + +* Thu Oct 09 2025 Michal Ruprich - 1:4.6.0-1 +- New version 4.6.0 + +* Mon Sep 01 2025 Michal Ruprich - 1:4.4.9-1 +- New version 4.4.9 + +* Fri Jul 25 2025 Fedora Release Engineering - 1:4.4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jul 18 2025 Michal Ruprich - 1:4.4.8-1 +- New version 4.4.8 + +* Thu Jun 05 2025 Michal Ruprich - 1:4.4.7-1 +- New version 4.4.7 + +* Tue Jun 03 2025 Michal Ruprich - 1:4.4.6-2 +- udevadm should be ignored if an error occures + +* Mon May 26 2025 Michal Ruprich - 1:4.4.6-1 +- New version 4.4.6 + +* Tue Mar 18 2025 Michal Ruprich - 1:4.4.5-1 +- New version 4.4.5 + +* Thu Feb 20 2025 Michal Ruprich - 1:4.4.4-1 +- New version 4.4.4 + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 1:4.4.3-2 +- Drop call to %sysusers_create_compat + +* Wed Jan 22 2025 Michal Ruprich - 1:4.4.3-1 +- New version 4.4.3 + +* Sun Jan 19 2025 Fedora Release Engineering - 1:4.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Nov 21 2024 Michal Ruprich - 1:4.4.2-1 +- New version 4.4.2 + +* Thu Oct 10 2024 Michal Ruprich - 1:4.4.1-1 +- New version 4.4.1 + +* Fri Sep 20 2024 Michal Ruprich - 1:4.4.0-2 +- Using cmake install for development headers and .cmake files + +* Thu Aug 29 2024 Michal Ruprich - 1:4.4.0-1 +- New version 4.4.0 + +* Sat Jul 20 2024 Fedora Release Engineering - 1:4.2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jul 11 2024 Michal Ruprich - 1:4.2.6-1 +- New version 4.2.6 + +* Fri May 24 2024 Neal Gompa - 1:4.2.5-2 +- Rebuild (Qt6) + +* Wed May 22 2024 Michal Ruprich - 1:4.2.5-1 +- New version 4.2.5 + +* Tue May 21 2024 Jan Grulich - 1:4.2.4-3 +- Rebuild (qt6) + +* Sat May 04 2024 Michal Ruprich - 1:4.2.4-2 +- Enabling additional features (rhbz#2278136) + +* Mon Apr 08 2024 Michal Ruprich - 1:4.2.4-1 +- New version 4.2.4 + +* Thu Apr 04 2024 Jan Grulich - 1:4.2.3-2 +- Rebuild (qt6) + +* Tue Mar 12 2024 Marie Loise Nolden - 1:4.2.3-1 +- New version 4.2.3-1 + +* Sun Feb 18 2024 Yaakov Selkowitz - 1:4.2.2-3 +- Install more devel headers + +* Sun Feb 11 2024 Michal Ruprich - 1:4.2.2-2 +- Making sure that wireshark.pc is created and installed + +* Thu Feb 01 2024 Michal Ruprich - 1:4.2.2-1 +- New version 4.2.2 + +* Sat Jan 27 2024 Fedora Release Engineering - 1:4.0.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Aug 31 2023 Michal Ruprich - 1:4.0.8-2 +- Resolves: #2236246 - wireshark crash in managed interfaces + +* Tue Aug 29 2023 Michal Ruprich - 1:4.0.8-1 +- New version 4.0.8 +- Resolves: #2235577 - possible Denial of Service via crafted package + +* Fri Jul 28 2023 Michal Ruprich - 1:4.0.7-3 +- Resolves: #2227004 - capinfos aborts in FIPS + +* Sat Jul 22 2023 Fedora Release Engineering - 1:4.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jul 14 2023 Michal Ruprich - 1:4.0.7-1 +- New version 4.0.7 + +* Thu May 25 2023 Michal Ruprich - 1:4.0.6-1 +- New version 4.0.6 + +* Thu Apr 13 2023 Michal Ruprich - 1:4.0.5-1 +- New version 4.0.5 +- Fix for bug #2159392 + +* Wed Mar 22 2023 Michal Ruprich - 1:4.0.4-2 +- SPDX migration + +* Tue Mar 07 2023 Michal Ruprich - 1:4.0.4-1 +- New version 4.0.4 + +* Thu Feb 02 2023 Michal Ruprich - 1:4.0.3-1 +- New version 4.0.3 + +* Sat Jan 21 2023 Fedora Release Engineering - 1:4.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 08 2022 Michal Ruprich - 1:4.0.2-1 +- New version 4.0.2 + +* Thu Oct 27 2022 Michal Ruprich - 1:4.0.1-1 +- New version 4.0.1 +- Only compat-lua is supported, on Fedora only + +* Fri Oct 14 2022 Michal Ruprich - 1:4.0.0-2 +- Adding a couple of tweaks for the latest rebased version + +* Thu Oct 06 2022 Kenneth Topp - 1:4.0.0-1 +- New version 4.0.0 + +* Thu Sep 29 2022 Michal Ruprich - 1:3.6.8-2 +- New version 3.6.8 +- Fix for CVE-2022-3190 + +* Mon Aug 01 2022 Davide Cavalca - 1:3.6.7-2 +- Drop gating for python3-devel dependency + +* Thu Jul 28 2022 Michal Ruprich - 1:3.6.7-1 +- New version 3.6.7 + +* Sat Jul 23 2022 Fedora Release Engineering - 1:3.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Feb 16 2022 Michal Ruprich - 1:3.6.2-1 +- New version 3.6.2 +- Fix for CVE-2022-0581, CVE-2022-0582, CVE-2022-0583, CVE-2022-0585, CVE-2022-0586 + +* Sat Jan 22 2022 Fedora Release Engineering - 1:3.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jan 12 2022 Michal Ruprich - 1:3.6.1-1 +- New version 3.6.1 +- Fix for CVE-2021-4181, CVE-2021-4182, CVE-2021-4183, CVE-2021-4184, CVE-2021-4185, CVE-2021-4190 + +* Thu Nov 25 2021 Michal Ruprich - 1:3.6.0-1 +- New version 3.6.0 +- Fix for CVE-2021-39920, CVE-2021-39921, CVE-2021-39922, CVE-2021-39923, CVE-2021-39924, CVE-2021-39925, CVE-2021-39926, CVE-2021-39928, CVE-2021-39929 + +* Wed Oct 13 2021 Michal Ruprich - 1:3.4.9-2 +- New version 3.4.9 + +* Mon Sep 06 2021 Timothée Ravier - 1:3.4.8-2 +- Use system sysusers config to create groups + +* Tue Aug 31 2021 Michal Ruprich - 1:3.4.8-1 +- New version 3.4.8 + +* Fri Jul 23 2021 Fedora Release Engineering - 1:3.4.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jul 15 2021 Michal Ruprich - 1:3.4.7-1 +- New version 3.4.7 + +* Thu Jun 10 2021 Michal Ruprich - 1:3.4.6-1 +- New version 3.4.6 +- Fix for CVE-2021-22207 + +* Thu May 27 2021 Michal Ruprich - 1:3.4.5-1 +- New version 3.4.5 +- Fix for CVE-2021-22207 + +* Tue Mar 16 2021 Michal Ruprich - 1:3.4.4-1 +- New version 3.4.4 +- Fix for CVE-2021-22191 + +* Tue Feb 23 2021 Michal Ruprich - 1:3.4.3-3 +- Adding more commits to make SMC complete + +* Mon Feb 22 2021 Michal Ruprich - 1:3.4.3-2 +- Adding SMC-R, SMC-D and SMC-D v2 + +* Tue Feb 16 2021 Michal Ruprich - 1:3.4.3-1 +- New version 3.4.3 +- Fix for CVE-2021-22173, CVE-2021-22174 + +* Fri Jan 29 2021 Michal Ruprich - 1:3.4.2-1 +- New version 3.4.2 +- Fix for CVE-2020-26418, CVE-2020-26419, CVE-2020-26420, CVE-2020-26421 + +* Wed Jan 27 2021 Fedora Release Engineering - 1:3.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 02 2020 Michal Ruprich - 1:3.4.0-1 +- New version 3.4.0 +- Fix for CVE-2020-26575, CVE-2020-28030 + +* Fri Oct 09 2020 Michal Ruprich - 1:3.2.7-1 +- New version 3.2.7 +- Fix for CVE-2020-25862, CVE-2020-25863, CVE-2020-25866 + +* Thu Sep 10 2020 Michal Ruprich - 1:3.2.6-2 +- Temprorarily disabling LTO build due to errors in libqt5core + +* Wed Aug 19 2020 Michal Ruprich - 1:3.2.6-1 +- New version 3.2.6 +- Fix for CVE-2020-17498 + +* Thu Jul 30 2020 Michal Ruprich - 1:3.2.5-3 +- Adding ownership for dirs created by wireshark (rhbz#1860650) + +* Wed Jul 29 2020 Fedora Release Engineering - 1:3.2.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 02 2020 Michal Ruprich - 1:3.2.5-1 +- New version 3.2.5 + +* Fri May 22 2020 Michal Ruprich - 1:3.2.4-1 +- New version 3.2.4 +- Enabling build with androiddump (rhbz#1834367) + * Mon Apr 13 2020 Gwyn Ciesla - 1:3.2.3-1 - 3.2.3 -* Fri Apr 03 2020 Michal Ruprich - 1:3.2.2-1 +* Fri Apr 03 2020 Michal Ruprich - 1:3.2.2-1 - New version 3.2.2 * Fri Jan 31 2020 Fedora Release Engineering - 1:3.2.0-2 diff --git a/wireshark.sysusers b/wireshark.sysusers new file mode 100644 index 0000000..b035d11 --- /dev/null +++ b/wireshark.sysusers @@ -0,0 +1,2 @@ +g wireshark - - +g usbmon - -