unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#34728] [PATCH] Update Wireshark to 3.0.0
@ 2019-03-04 10:03 Nicolas Goaziou
  2019-03-11 21:34 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2019-03-04 10:03 UTC (permalink / raw)
  To: 34728

[-- Attachment #1: Type: text/plain, Size: 561 bytes --]

Hello,

The following patch updates Wireshark to 3.0.0. 

This change is not trivial. In particular, upstream switched build
system (GNU to CMake) and it seems to annoy `validate-runpath' phase.
I tried various things to make it pass, e.g., removing "INSTALL_RPATH"
settings in various "CMakeLists.txt", or re-build rpath, à la
"powertabeditor", to no avail. 

Out of ideas, I disabled the phase. Wireshark seems to run anyway, even
though I didn't thoroughly tested it.

Let me know if you have better ideas.

Regards,

-- 
Nicolas Goaziou

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Update Wireshark to 3.0.0. --]
[-- Type: text/x-diff, Size: 5434 bytes --]

From dbaee4641e329bbdd44b0645acb4ec5a97ee5eaa Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Sun, 3 Mar 2019 01:33:44 +0100
Subject: [PATCH] gnu: wireshark: Update to 3.0.0.

* gnu/packages/networking.scm (wireshark): Update to 3.0.0.
---
 gnu/packages/networking.scm | 101 ++++++++++++++++++------------------
 1 file changed, 50 insertions(+), 51 deletions(-)

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index f7477230a6..ebfdcfc345 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -591,7 +591,7 @@ of the same name.")
 (define-public wireshark
   (package
     (name "wireshark")
-    (version "2.6.6")
+    (version "3.0.0")
     (source
      (origin
        (method url-fetch)
@@ -599,59 +599,58 @@ of the same name.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "0qz8a1ays63712pq1v7nnw7c57zlqkcifq7himfv5nsv0zm36ya8"))))
-    (build-system gnu-build-system)
-    (inputs `(("c-ares" ,c-ares)
-              ("glib" ,glib)
-              ("gnutls" ,gnutls)
-              ("libcap" ,libcap)
-              ("libgcrypt" ,libgcrypt)
-              ("libnl" ,libnl)
-              ("libpcap" ,libpcap)
-              ("libssh" ,libssh)
-              ("libxml2" ,libxml2)
-              ("lz4" ,lz4)
-              ("lua" ,lua-5.2)          ;Lua 5.3 unsupported
-              ("krb5" ,mit-krb5)
-              ("portaudio" ,portaudio)
-              ("qtbase" ,qtbase)
-              ("qtmultimedia" ,qtmultimedia)
-              ("sbc" ,sbc)
-              ("snappy" ,snappy)
-              ("zlib" ,zlib)))
-    (native-inputs `(("perl" ,perl)
-                     ("pkg-config" ,pkg-config)
-                     ("python" ,python-wrapper)
-                     ("qttools" ,qttools)))
+         "17h0ixq7yr6scscjkidaj3dh5x6dfd3f97ggdxlklkz9nbsk0kxw"))))
+    (build-system cmake-build-system)
     (arguments
-     `(#:configure-flags
-       (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
-             (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5"))
-             (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
-             (string-append "--with-libssh=" (assoc-ref %build-inputs "libssh"))
-             (string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
-             (string-append "--with-lz4=" (assoc-ref %build-inputs "lz4"))
-             (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
-             (string-append "--with-portaudio="
-                            (assoc-ref %build-inputs "portaudio"))
-             (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
-             (string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
-             (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-source
+         (add-after 'unpack 'remove-failing-test
+           ;; Test 31/32 fails with errors like "Program reassemble_test is
+           ;; not available".  Skipping it for now.
            (lambda _
-             ;; Fix build against Qt 5.11.
-             (substitute* "ui/qt/packet_format_group_box.cpp"
-               (("#include <QStyle>") "#include <QStyle>
-#include <QStyleOption>"))
-             (substitute* "ui/qt/time_shift_dialog.cpp"
-               (("#include <ui/time_shift.h>") "#include <ui/time_shift.h>
-#include <QStyleOption>"))
-             (substitute* "ui/qt/wireless_frame.cpp"
-               (("#include <QProcess>") "#include <QProcess>
-#include <QAbstractItemView>"))
-             #t)))))
+             (substitute* "CMakeLists.txt"
+               (("suite_unittests" all) (string-append "# " all)))
+             #t)))
+       ;; "CMakeLists.txt" uses $ORIGIN, which seems to confuse
+       ;; `validate-runpath' phase.
+       ;;
+       ;; Errors are like the following:
+       ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
+       ;; error: depends on 'libwireshark.so.12', which cannot be found in
+       ;; RUNPATH".  That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
+       ;; seem to belong to RUNPATH.
+       ;;
+       ;; For now, we disable this phase, as Wireshark seems to run properly
+       ;; anyway.
+       #:validate-runpath? #f))
+    (inputs
+     `(("c-ares" ,c-ares)
+       ("glib" ,glib)
+       ("gnutls" ,gnutls)
+       ("libcap" ,libcap)
+       ("libgcrypt" ,libgcrypt)
+       ("libnl" ,libnl)
+       ("libpcap" ,libpcap)
+       ("libssh" ,libssh)
+       ("libxml2" ,libxml2)
+       ("lz4" ,lz4)
+       ("lua" ,lua-5.2)                 ;Lua 5.3 unsupported
+       ("krb5" ,mit-krb5)
+       ("qtbase" ,qtbase)
+       ("qtmultimedia" ,qtmultimedia)
+       ("qtsvg" ,qtsvg)
+       ("sbc" ,sbc)
+       ("snappy" ,snappy)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("bison" ,bison)
+       ("doxygen" ,doxygen)
+       ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)))
     (synopsis "Network traffic analyzer")
     (description "Wireshark is a network protocol analyzer, or @dfn{packet
 sniffer}, that lets you capture and interactively browse the contents of
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#34728] [PATCH] Update Wireshark to 3.0.0
  2019-03-04 10:03 [bug#34728] [PATCH] Update Wireshark to 3.0.0 Nicolas Goaziou
@ 2019-03-11 21:34 ` Ludovic Courtès
  2019-03-12 11:19   ` Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2019-03-11 21:34 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 34728

Hi Nicolas,

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> The following patch updates Wireshark to 3.0.0. 
>
> This change is not trivial. In particular, upstream switched build
> system (GNU to CMake) and it seems to annoy `validate-runpath' phase.
> I tried various things to make it pass, e.g., removing "INSTALL_RPATH"
> settings in various "CMakeLists.txt", or re-build rpath, à la
> "powertabeditor", to no avail. 
>
> Out of ideas, I disabled the phase. Wireshark seems to run anyway, even
> though I didn't thoroughly tested it.

Weird.

>>From dbaee4641e329bbdd44b0645acb4ec5a97ee5eaa Mon Sep 17 00:00:00 2001
> From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
> Date: Sun, 3 Mar 2019 01:33:44 +0100
> Subject: [PATCH] gnu: wireshark: Update to 3.0.0.
>
> * gnu/packages/networking.scm (wireshark): Update to 3.0.0.

Overall LGTM!  If you’re confident you can go ahead and push, no need to
wait until the update is outdated.  ;-)

> +       ;; "CMakeLists.txt" uses $ORIGIN, which seems to confuse
> +       ;; `validate-runpath' phase.
> +       ;;
> +       ;; Errors are like the following:
> +       ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
> +       ;; error: depends on 'libwireshark.so.12', which cannot be found in
> +       ;; RUNPATH".  That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
> +       ;; seem to belong to RUNPATH.

What’s the RUNPATH on ethercat.so?

  readelf -a ethercat.so | grep RUNPATH

And where is libwireshark.so.12?

‘validate-runpath’ does interpret $ORIGIN, but maybe there’s a but
there.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#34728] [PATCH] Update Wireshark to 3.0.0
  2019-03-11 21:34 ` Ludovic Courtès
@ 2019-03-12 11:19   ` Nicolas Goaziou
  2019-03-13 10:10     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Nicolas Goaziou @ 2019-03-12 11:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 34728

Hello,

Thank you for the review.

Ludovic Courtès <ludo@gnu.org> writes:

> Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:
>
>> +       ;; "CMakeLists.txt" uses $ORIGIN, which seems to confuse
>> +       ;; `validate-runpath' phase.
>> +       ;;
>> +       ;; Errors are like the following:
>> +       ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
>> +       ;; error: depends on 'libwireshark.so.12', which cannot be found in
>> +       ;; RUNPATH".  That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
>> +       ;; seem to belong to RUNPATH.
>
> What’s the RUNPATH on ethercat.so?
>
>   readelf -a ethercat.so | grep RUNPATH

 0x000000000000001d (RUNPATH)            Bibliothèque runpath:[:/gnu/store/...-glibc-2.28/lib:/gnu/store/...-gcc-5.5.0-lib/lib:/gnu/store/...-glib-2.56.3/lib:/gnu/store/...-libpcap-1.9.0/lib:/gnu/store/...-libgcrypt-1.8.3/lib:/gnu/store/...-libgpg-error-1.32/lib:/gnu/store/...-gnutls-3.6.5/lib:/gnu/store/...-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..]

> And where is libwireshark.so.12?

In "/gnu/store/...wireshark-3.0.0/lib".

I don't understand why this is getting removed.

> ‘validate-runpath’ does interpret $ORIGIN, but maybe there’s a but
> there.

Then my remark about $ORIGIN is wrong. 

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#34728] [PATCH] Update Wireshark to 3.0.0
  2019-03-12 11:19   ` Nicolas Goaziou
@ 2019-03-13 10:10     ` Ludovic Courtès
  2019-03-13 11:33       ` bug#34728: " Nicolas Goaziou
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2019-03-13 10:10 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: 34728

Hi Nicolas,

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:
>>
>>> +       ;; "CMakeLists.txt" uses $ORIGIN, which seems to confuse
>>> +       ;; `validate-runpath' phase.
>>> +       ;;
>>> +       ;; Errors are like the following:
>>> +       ;; "/gnu/store/...wireshark-3.0.0/lib/wireshark/plugins/3.0/epan/ethercat.so:
>>> +       ;; error: depends on 'libwireshark.so.12', which cannot be found in
>>> +       ;; RUNPATH".  That is, "/gnu/store/...wireshark-3.0.0./lib" doesn't
>>> +       ;; seem to belong to RUNPATH.
>>
>> What’s the RUNPATH on ethercat.so?
>>
>>   readelf -a ethercat.so | grep RUNPATH
>
>  0x000000000000001d (RUNPATH)            Bibliothèque runpath:[:/gnu/store/...-glibc-2.28/lib:/gnu/store/...-gcc-5.5.0-lib/lib:/gnu/store/...-glib-2.56.3/lib:/gnu/store/...-libpcap-1.9.0/lib:/gnu/store/...-libgcrypt-1.8.3/lib:/gnu/store/...-libgpg-error-1.32/lib:/gnu/store/...-gnutls-3.6.5/lib:/gnu/store/...-gcc-5.5.0-lib/lib/gcc/x86_64-unknown-linux-gnu/5.5.0/../../..]

Look, there’s no $ORIGIN in there!  :-)

So the problem is really that /gnu/store/…-wireshark-3.0.0/lib is
missing.

That’s not a problem in practice because ethercat.so is a plugin, so
it’s dlopen’d by a process that already provides libwireshark.  (It’s
still bad style IMO.)

Anyway you can keep #:validate-runpath? #f and adjust the comment.

Thank you,
Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#34728: [PATCH] Update Wireshark to 3.0.0
  2019-03-13 10:10     ` Ludovic Courtès
@ 2019-03-13 11:33       ` Nicolas Goaziou
  0 siblings, 0 replies; 5+ messages in thread
From: Nicolas Goaziou @ 2019-03-13 11:33 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 34728-done

Hello,

Ludovic Courtès <ludo@gnu.org> writes:

> Look, there’s no $ORIGIN in there!  :-)

Indeed. The supposed $ORIGIN issue was a guess of mine. I guessed it
wrong.

> So the problem is really that /gnu/store/…-wireshark-3.0.0/lib is
> missing.
>
> That’s not a problem in practice because ethercat.so is a plugin, so
> it’s dlopen’d by a process that already provides libwireshark.  (It’s
> still bad style IMO.)
>
> Anyway you can keep #:validate-runpath? #f and adjust the comment.

I updated the comment, and pushed as
2b6ab17f7d61bcee92194d8b155a709481a95244.

Thank you.

Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-03-13 11:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-04 10:03 [bug#34728] [PATCH] Update Wireshark to 3.0.0 Nicolas Goaziou
2019-03-11 21:34 ` Ludovic Courtès
2019-03-12 11:19   ` Nicolas Goaziou
2019-03-13 10:10     ` Ludovic Courtès
2019-03-13 11:33       ` bug#34728: " Nicolas Goaziou

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).