Wireshark-dev: Re: [Wireshark-dev] Script extcap on macOS

From: Dario Lombardo <lomato@xxxxxxxxx>
Date: Thu, 18 Apr 2019 13:56:21 +0200
The problem seems to be elsewhere, actually. Unless I'm missing something, the shell extcap is not seen at all, no matter if it's python or bash. I have converted the above script into bash and I've pushed it to travis, and that's the result.

https://travis-ci.org/crondaemon/wireshark/jobs/521648061

Linux works fine as with the python script.
Are the extcap expected to be under build/run/extcap on macOS or elsewhere?

On Thu, Apr 18, 2019 at 12:57 PM Roland Knall <rknall@xxxxxxxxx> wrote:
Could you create a shell script as extcap which just passes all arguments to the python script using "$@"?

I am not proposing that as a workaround, just want to see, if python would execute the script at all, and it is the searchpaths fault when executing from the bundle, or if python in itself faces an issue.

Shell scripts should work fine btw in any case.

cheers
Roland

Am Do., 18. Apr. 2019 um 12:20 Uhr schrieb Dario Lombardo <lomato@xxxxxxxxx>:


On Fri, Apr 12, 2019 at 10:32 PM Guy Harris <guy@xxxxxxxxxxxx> wrote:
On Apr 12, 2019, at 1:22 PM, Roland Knall <rknall@xxxxxxxxx> wrote:

> There seems to be an issue on mac, depending how the original Wireshark binary has been called. It seems to be, that by clicking on the icon, the system python interpreter get's loaded, which most certainly will let your script fail.

The script begins with

        #!/usr/bin/env python3

so the only way it should be run by the system Python interpreter - which is not a Python 3 interpreter:

        $ python --version
        Python 2.7.10

would be if it were run by "python {script path}" rather than just trying to run {script path} as an executable image.  (Or if somebody make a "python3" link to "/usr/bin/python", but that would be a very silly thing to do.)

Now, if you *did* install a Python 3 interpreter, but the directory in which it's installed isn't in $PATH - or if it's not installed as python3 - then the attempt to run the script won't work.


The travis builder shows

Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages

 

What I understand is that python3 is installed and python2.7 is not. Then I guess it's a matter of paths. I expected "/usr/bin/env python3" to get the correct python interpreter. Am I wrong? If so, how can I make it find the right path? Creating a simlink could work and, since the machine gets destroyed after the build, I would not left a dirty system behind me. But I'd like to pursue a less hammered solution.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe


--
Naima is online.