diff --git a/wireshark-1.10.0-authors-pod2man.patch b/wireshark-1.10.0-authors-pod2man.patch deleted file mode 100644 index 11ac1af..0000000 --- a/wireshark-1.10.0-authors-pod2man.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Andreas Stieger -Date: Thu, 27 Jun 2013 21:02:17 +0100 -Subject: [patch] change characters in AUTHORS file to be compatible with pod2man -Upstream: never - -* remove some characters for which Pod::Man does not have an escape sequence -* replace cyrillic name with transliteration - -Wide character in printf at /usr/lib/perl5/5.18.0/Pod/Simple.pm line 539. -wireshark.pod around line 3455: Non-ASCII character seen before =encoding in 'Moń'. Assuming UTF-8 -POD document had syntax errors at /usr/bin/pod2man line 71. -make: *** [wireshark.1] Error 255 -error: Bad exit status from /var/tmp/rpm-tmp.PtRL60 (%build) - - ---- - AUTHORS | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -Index: wireshark-2.2.0/AUTHORS -=================================================================== ---- wireshark-2.2.0.orig/AUTHORS -+++ wireshark-2.2.0/AUTHORS -@@ -3534,7 +3534,7 @@ Peter Hatina { - Gtk3 Wireshark fixes - } - --Tomasz Moń { -+Tomasz Mon { - USBPcap support - } - -@@ -3780,7 +3780,7 @@ Cvetan Ivanov - Vasanth Manickam - Julian Onions - Samuel Thibault --Peter Kovář -+Peter Kovár - Paul Ollis - Dominik Kuhlen - Karl Knoebl -@@ -3871,8 +3871,8 @@ Paul Stath - DeCount - Andras Veres-Szentkiralyi - Jakob Hirsch --Роман Донченко --Роман Донченко -+Roman Donchenko -+Roman Donchenko - Evan Huus - Tom Cook - Tom Alexander diff --git a/wireshark.changes b/wireshark.changes index 9520b7d..09fa207 100644 --- a/wireshark.changes +++ b/wireshark.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Wed Jan 4 10:32:57 UTC 2017 - tchvatal@suse.com + +- Obsolete the ui-gtk in the ui-qt to ensure clean non-conflicted install + +------------------------------------------------------------------- +Tue Dec 27 11:33:33 UTC 2016 - tchvatal@suse.com + +- Cleanup a bit with spec-cleaner +- Properly set ethereal symlink based on UI and set it to proper subpkg +- Update conditionals on wireshark to only build Qt or GTK depending + on the interface, because upstream now only supports Qt5 +- Update the caps code in spec but keep it disabled +- Enable geoip only on platforms that support it +- Enable libnl only on newer releases +- Update desktop file and icon caches +- Drop not really needed patch wireshark-1.10.0-authors-pod2man.patch +- Use full commands for icon/desktop cache for gtk mode as on sle11 it + was not present yet as a macro +- Split shared libraries properly to subpackages + ------------------------------------------------------------------- Wed Dec 14 21:01:01 UTC 2016 - astieger@suse.com diff --git a/wireshark.spec b/wireshark.spec index c685c7a..8db4785 100644 --- a/wireshark.spec +++ b/wireshark.spec @@ -1,7 +1,7 @@ # # spec file for package wireshark # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,18 +16,23 @@ # -# disable caps for now +# define libraries +%define libutil libwsutil7 +%define libwire libwireshark8 +%define libtap libwiretap6 +%define libcodecs libwscodecs1 +# disable caps %define use_caps 0 - -%define use_gtk3 0%{?suse_version} > 1140 -%bcond_without gtk -%if 0%{?suse_version} == 1110 -%bcond_with qt -%else +# Enable new Qt gui on new releases and build old GTK2 gui on old releases +%if 0%{?suse_version} > 1140 %bcond_without qt +%bcond_with gtk +%bcond_without geoip +%else +%bcond_with qt +%bcond_without gtk +%bcond_with geoip %endif -%define use_gnutls 0%{?suse_version} >= 1310 || 0%{?suse_version} == 1110 - Name: wireshark Version: 2.2.3 Release: 0 @@ -43,82 +48,66 @@ Patch1: wireshark-1.2.0-disable-warning-dialog.patch # PATCH-FEATURE-OPENSUSE wireshark-1.2.0-geoip.patch prusnak@suse.cz -- search in /var/lib/GeoIP if user hasn't set any GeoIP folders Patch2: wireshark-1.2.0-geoip.patch Patch4: wireshark-1.10.0-enable_lua.patch -Patch5: wireshark-1.10.0-authors-pod2man.patch - +# for patch7 wireshark-1.12.6-fix-QT-PIC-PIE.patch BuildRequires: bison -BuildRequires: cairo-devel BuildRequires: flex -%if %{with gtk} -%if 0%{use_gtk3} -BuildRequires: gtk3-devel >= 3.0.0 +BuildRequires: glib2-devel +BuildRequires: hicolor-icon-theme +BuildRequires: krb5-devel +BuildRequires: libcares-devel +BuildRequires: libgcrypt-devel >= 1.1.92 +BuildRequires: libgnutls-devel >= 2.12.0 +BuildRequires: libpcap-devel +BuildRequires: libsmi-devel +BuildRequires: libtool +BuildRequires: net-snmp-devel +BuildRequires: openssl-devel +BuildRequires: pcre-devel +BuildRequires: pkgconfig +BuildRequires: portaudio-devel +BuildRequires: tcpd-devel +BuildRequires: update-desktop-files +BuildRequires: zlib-devel +Requires: hicolor-icon-theme +Requires(pre): shadow +Recommends: wireshark-ui = %{version} +Provides: ethereal = %{version} +Obsoletes: ethereal < %{version} +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if !0%{use_caps} +Requires: xdg-utils %else +BuildRequires: libcap-devel +Requires(pre): permissions +%endif +%if %{with geoip} +BuildRequires: GeoIP-devel +Recommends: GeoIP +%endif +%if 0%{?suse_version} < 1140 +# GNUTLS 3.0 has incompatible license, yet 3.1 is fine +BuildConflicts: libgnutls-devel >= 3.0.0 +%endif +%if 0%{?suse_version} > 1310 +BuildRequires: pkgconfig(libnl-3.0) +%endif +%if %{with gtk} +BuildRequires: cairo-devel BuildRequires: gtk2-devel >= 2.12.0 -%endif # use_gtk3 -%endif # with gtk +%endif %if %{with qt} -%if 0%{?suse_version} > 1320 BuildRequires: libqt5-linguist BuildRequires: pkgconfig(Qt5Core) >= 5.0.0 BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Multimedia) BuildRequires: pkgconfig(Qt5PrintSupport) BuildRequires: pkgconfig(Qt5Widgets) -%else -%if 0%{?suse_version} >= 1220 -BuildRequires: pkgconfig(QtCore) >= 4.7.0 -%else -BuildRequires: libqt4-devel >= 4.7.0 -%endif # 12.20 %endif -%endif # with qt -BuildRequires: krb5-devel -BuildRequires: libcap-devel -BuildRequires: libcares-devel -BuildRequires: libgcrypt-devel >= 1.1.92 -BuildRequires: libpcap-devel -BuildRequires: libsmi-devel %if 0%{?suse_version} > 1320 BuildRequires: lua52-devel %else BuildRequires: lua-devel %endif -BuildRequires: net-snmp-devel -BuildRequires: openssl-devel -BuildRequires: pcre-devel -BuildRequires: portaudio-devel -BuildRequires: python-devel >= 2.5 -BuildRequires: tcpd-devel -BuildRequires: xdg-utils -%if 0%{?suse_version} > 1220 -BuildRequires: zlib-devel -%endif -Requires: xdg-utils -Provides: ethereal = %{version} -Obsoletes: ethereal < %{version} -BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} -BuildRequires: libGeoIP-devel -BuildRequires: update-desktop-files -Recommends: GeoIP -%endif -%if 0%{?use_gnutls} -# pull in licence compatible gnutls -%if 0%{?suse_version} >= 1310 -BuildRequires: pkgconfig(gnutls) >= 3.1.10 -%endif # >= 13.1 -%if 0%{?suse_version} == 1110 -BuildRequires: libgnutls-devel >= 2.12.0 -BuildConflicts: libgnutls-devel >= 3.0.0 -%endif # SLE 11 -%endif # use_gnutls -# for patch7 wireshark-1.12.6-fix-QT-PIC-PIE.patch -BuildRequires: autoconf -BuildRequires: automake -BuildRequires: libtool -BuildRequires: pkgconfig(libnl-3.0) -BuildRequires: pkgconfig(libnl-genl-3.0) -BuildRequires: pkgconfig(libnl-route-3.0) -Recommends: wireshark-ui = %{version} %description Wireshark is a free network protocol analyzer for Unix and Windows. It @@ -128,9 +117,43 @@ and detail information for each packet. Wireshark has several powerful features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session. +%package -n %{libutil} +Summary: Library for wireshark utilities +Group: System/Libraries + +%description -n %{libutil} +The libwsutil library provides utility functions for libwireshark. + +%package -n %{libwire} +Summary: Network packet dissection library +Group: System/Libraries + +%description -n %{libwire} +The libwireshark library provides the network packet dissection services +developed by the Wireshark project. + +%package -n %{libtap} +Summary: Wireshark library for tapping +Group: System/Libraries + +%description -n %{libtap} +Wiretap, part of the Wireshark project, is a library that allows one to read +and write several packet capture file formats. + +%package -n %{libcodecs} +Summary: Network packet dissection codecs library +Group: System/Libraries + +%description -n %{libcodecs} +The libwscodecs library provides codec functions for libwireshark. + %package devel Summary: A Network Traffic Analyser Group: Development/Libraries/C and C++ +Requires: %{libcodecs} = %{version} +Requires: %{libtap} = %{version} +Requires: %{libutil} = %{version} +Requires: %{libwire} = %{version} Requires: %{name} = %{version} Requires: glib2-devel Requires: glibc-devel @@ -146,7 +169,6 @@ features, including a rich display filter language and the ability to view the reconstructed stream of a TCP session. %if %{with gtk} - %package ui-gtk Summary: A Network Traffic Analyser - GTK+ UI Group: Productivity/Networking/Diagnostic @@ -154,29 +176,28 @@ Requires: %{name} = %{version} Provides: %{name}-ui = %{version} %description ui-gtk -This package contains the classic GTK+ UI of Wireshark. - +This package contains the GTK+ UI of Wireshark. %endif %if %{with qt} - %package ui-qt Summary: A Network Traffic Analyser - Qt UI Group: Productivity/Networking/Diagnostic Requires: %{name} = %{version} Provides: %{name}-ui = %{version} +# gtk is the deprecated ui so ensure its uninstall +Obsoletes: %{name}-ui-gtk %description ui-qt -This package contains the newer Qt based UI for Wireshark. - +This package contains the Qt based UI for Wireshark. %endif %prep # The publisher doesn't sign the source tarball, but a signatures file containing multiple hashes. # Verify hashes in that file against source tarball. -echo "`grep %{name}-%{version}.tar.bz2 %{S:2} | grep MD5 | head -n1 | cut -d= -f2` %{S:0}" | md5sum -c -echo "`grep %{name}-%{version}.tar.bz2 %{S:2} | grep SHA1 | head -n1 | cut -d= -f2` %{S:0}" | sha1sum -c -echo "`grep %{name}-%{version}.tar.bz2 %{S:2} | grep SHA256 | head -n1 | cut -d= -f2` %{S:0}" | sha256sum -c +echo "`grep %{name}-%{version}.tar.bz2 %{SOURCE2} | grep MD5 | head -n1 | cut -d= -f2` %{SOURCE0}" | md5sum -c +echo "`grep %{name}-%{version}.tar.bz2 %{SOURCE2} | grep SHA1 | head -n1 | cut -d= -f2` %{SOURCE0}" | sha1sum -c +echo "`grep %{name}-%{version}.tar.bz2 %{SOURCE2} | grep SHA256 | head -n1 | cut -d= -f2` %{SOURCE0}" | sha256sum -c %setup -q %patch2 -p1 @@ -184,63 +205,40 @@ echo "`grep %{name}-%{version}.tar.bz2 %{S:2} | grep SHA256 | head -n1 | cut -d= %if ! %{use_caps} %patch1 -p1 -# run as root on 11.3 and older - bnc#349782 -sed -i 's!^Exec=wireshark!Exec=/usr/bin/xdg-su -c /usr/bin/wireshark!' wireshark.desktop +# run as root if not using caps +sed -i 's!^Exec=wireshark!Exec=%{_bindir}/xdg-su -c %{_bindir}/wireshark!' wireshark.desktop %endif -%if %{with qt} sed -i 's/^Icon=wireshark.png$/Icon=wireshark/' wireshark.desktop -%endif # with qt - %if %{with gtk} -sed -i 's/^Icon=wireshark.png$/Icon=wireshark/' wireshark.desktop sed \ -e 's/^Name.*Wireshark/& (GTK)/' \ -e 's/^Icon=wireshark/&-gtk/' \ -e '/Exec=/s/wireshark/&-gtk/g' %{name}.desktop > %{name}-gtk.desktop -%endif # with gtk - -%patch5 -p1 +%endif %build -# for patch6 wireshark-1.12.x-allow-gdk-pixbuf-deprecation.patch -autoreconf -fiv - -# zlib-1.2.5 does not work well with wireshark, so disable it on pre-12.2 -export CFLAGS="%optflags -fPIC" -export CXXFLAGS="%optflags -fPIC" +export CFLAGS="%{optflags} -fPIC" +export CXXFLAGS="%{optflags} -fPIC" export LDFLAGS="-pie" -%if 0%{?suse_version} > 1320 +%if %{with qt} #XXX: buggy autoconf checks.. export PATH="%{_libdir}/qt5/bin:$PATH" %endif %configure \ -%if 0%{?suse_version} < 1220 - --without-zlib \ -%endif %if %{with gtk} -%if 0%{?use_gtk3} - --with-gtk3=yes \ - --with-gtk2=no \ -%else --with-gtk3=no \ --with-gtk2=yes \ %endif -%else - --with-gtk3=no \ - --with-gtk2=no \ -%endif # with gtk %if %{with qt} --with-qt=yes \ %else --with-qt=no \ %endif --with-ssl \ -%if 0%{?use_gnutls} --with-gnutls=yes \ -%endif --with-gcrypt=yes \ --with-plugins=%{_libdir}/%{name}/plugins/%{version} \ --with-pic=yes @@ -248,25 +246,24 @@ export PATH="%{_libdir}/qt5/bin:$PATH" make %{?_smp_mflags} V=1 %install -make DESTDIR=%{buildroot} install -find %{buildroot} -name "*.la" -delete -print +make %{?_smp_mflags} DESTDIR=%{buildroot} install +find %{buildroot} -type f -name "*.la" -delete -print + +rm -rf %{buildroot}%{_datadir}/%{name}/COPYING + +# Ethereal support (remove when SLE-11 is out of scope %if %{with gtk} +ln -fs wireshark-gtk %{buildroot}%{_bindir}/ethereal +%endif +%if %{with qt} ln -fs wireshark %{buildroot}%{_bindir}/ethereal %endif ln -fs tshark %{buildroot}%{_bindir}/tethereal + install -d -m 0755 %{buildroot}%{_sysconfdir} install -d -m 0755 %{buildroot}%{_mandir}/man1/ -# install -m 0644 *.1 %%{buildroot}%%{_mandir}/man1/ - # install separate appdata files corresponding to .desktop files for AppStore integration install -d -m0755 %{buildroot}%{_datadir}/appdata - -install -m644 wireshark.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}-gtk.appdata.xml -sed -i -e "//i \ \ \ \ Wireshark (GTK) Network Analyzer<\/name>" \ - -e "//i \ \ \ \ GTK interface for wireshark network traffic analyzer<\/summary>" \ - -e "s/wireshark\.desktop/wireshark-gtk.desktop/" \ - %{buildroot}%{_datadir}/appdata/%{name}-gtk.appdata.xml - install -m644 wireshark.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml sed -i -e "//i \ \ \ \ Wireshark (QT) Network Analyzer<\/name>" \ -e "//i \ \ \ \ QT interface for wireshark network traffic analyzer<\/summary>" \ @@ -274,7 +271,7 @@ sed -i -e "//i \ \ \ \ Wireshark (QT) Network Analyzer<\/name # -devel install -d -m 0755 %{buildroot}%{_includedir}/wireshark -IDIR="${RPM_BUILD_ROOT}%{_includedir}/wireshark" +IDIR="%{buildroot}%{_includedir}/wireshark" mkdir -p "${IDIR}/epan" mkdir -p "${IDIR}/epan/crypt" mkdir -p "${IDIR}/epan/ftypes" @@ -296,42 +293,54 @@ install -m 644 wsutil/*.h "${IDIR}/wsutil" %if %{with gtk} install -D -m 0644 image/wsicon48.png %{buildroot}%{_datadir}/pixmaps/wireshark-gtk.png install -D -m 0644 wireshark-gtk.desktop %{buildroot}%{_datadir}/applications/wireshark-gtk.desktop -%if 0%{?suse_version} %suse_update_desktop_file %{name}-gtk -%endif +%else +# sometimes the gtk.desktop gets autoinstalled by make_install +rm -f %{buildroot}%{_datadir}/applications/wireshark-gtk.desktop %endif %if %{with qt} install -D -m 0644 image/wsicon48.png %{buildroot}%{_datadir}/pixmaps/wireshark.png install -D -m 0644 wireshark.desktop %{buildroot}%{_datadir}/applications/wireshark.desktop -%if 0%{?suse_version} %suse_update_desktop_file %{name} %endif -%endif - -%clean -rm -rf %{buildroot} %if %{use_caps} - %pre -getent group wireshark >/dev/null || groupadd wireshark +getent group wireshark >/dev/null || groupadd -r wireshark + +%verifyscript +%{verify_permissions -e %_bindir/dumpcap} %endif -%post -p /sbin/ldconfig +%post +%if %{use_caps} +%if 0%{?set_permissions:1} > 0 +%set_permissions %_bindir/dumpcap +%else +%run_permissions +%endif +%endif # use_caps +exit 0 -%postun -p /sbin/ldconfig +%post -n %{libutil} -p /sbin/ldconfig +%postun -n %{libutil} -p /sbin/ldconfig +%post -n %{libwire} -p /sbin/ldconfig +%postun -n %{libwire} -p /sbin/ldconfig +%post -n %{libtap} -p /sbin/ldconfig +%postun -n %{libtap} -p /sbin/ldconfig +%post -n %{libcodecs} -p /sbin/ldconfig +%postun -n %{libcodecs} -p /sbin/ldconfig %files %defattr(-,root,root) %doc AUTHORS COPYING NEWS README README.linux README.vmware -%doc %{_mandir}/man1/[^i]* -%doc %{_mandir}/man4/* +%{_mandir}/man1/[^i]* +%{_mandir}/man4/* %{_bindir}/capinfos %{_bindir}/captype %{_bindir}/dftest %{_bindir}/editcap -%{_bindir}/ethereal %{_bindir}/idl2wrs %{_bindir}/mergecap %{_bindir}/randpkt @@ -341,11 +350,10 @@ getent group wireshark >/dev/null || groupadd wireshark %{_bindir}/text2pcap %{_bindir}/tshark %if %{use_caps} -%attr(0750,root,wireshark) %caps(cap_net_raw,cap_net_admin=eip) %{_bindir}/dumpcap +%verify(not mode caps) %attr(0750,root,wireshark) %caps(cap_net_raw,cap_net_admin=eip) %{_bindir}/dumpcap %else %{_bindir}/dumpcap %endif -%{_libdir}/lib*.so.* %{_libdir}/wireshark/ %{_datadir}/wireshark/ %{_datadir}/icons/hicolor/*/apps/wireshark.png @@ -353,6 +361,22 @@ getent group wireshark >/dev/null || groupadd wireshark %{_datadir}/icons/hicolor/scalable/apps/wireshark.svg %{_datadir}/mime/packages/wireshark.xml +%files -n %{libutil} +%defattr(-,root,root) +%{_libdir}/libwsutil*.so.* + +%files -n %{libwire} +%defattr(-,root,root) +%{_libdir}/libwireshark.so.* + +%files -n %{libtap} +%defattr(-,root,root) +%{_libdir}/libwiretap.so.* + +%files -n %{libcodecs} +%defattr(-,root,root) +%{_libdir}/libwscodecs.so.* + %files devel %defattr(-,root,root) %doc doc/README.* @@ -361,26 +385,44 @@ getent group wireshark >/dev/null || groupadd wireshark %{_libdir}/pkgconfig/wireshark.pc %if %{with gtk} - %files ui-gtk %defattr(-,root,root) %{_bindir}/wireshark-gtk +%{_bindir}/ethereal %{_datadir}/appdata/wireshark-gtk.appdata.xml %{_datadir}/applications/wireshark-gtk.desktop %{_datadir}/pixmaps/wireshark-gtk.png +%post ui-gtk +test -f /usr/bin/update-mime-database && /usr/bin/update-mime-database %{_datadir}/mime > /dev/null || : +test -f /usr/bin/update-desktop-database && /usr/bin/update-desktop-database > /dev/null || : +test -f /sbin/conf.d/SuSEconfig.gtk2 && SuSEconfig --module gtk2 > /dev/null || : +test -f /sbin/conf.d/SuSEconfig.glib2 && SuSEconfig --module glib2 > /dev/null || : + +%postun ui-gtk +test -f /usr/bin/update-mime-database && /usr/bin/update-mime-database %{_datadir}/mime > /dev/null || : +test -f /usr/bin/update-desktop-database && /usr/bin/update-desktop-database > /dev/null || : +test -f /sbin/conf.d/SuSEconfig.gtk2 && SuSEconfig --module gtk2 > /dev/null || : +test -f /sbin/conf.d/SuSEconfig.glib2 && SuSEconfig --module glib2 > /dev/null || : %endif %if %{with qt} - %files ui-qt %defattr(-,root,root) %{_bindir}/wireshark +%{_bindir}/ethereal %dir %{_datadir}/appdata %{_datadir}/appdata/wireshark.appdata.xml %{_datadir}/applications/wireshark.desktop %{_datadir}/pixmaps/wireshark.png +%post ui-qt +%desktop_database_post +%icon_theme_cache_post + +%postun ui-qt +%desktop_database_postun +%icon_theme_cache_postun %endif %changelog