IsSuEat / open-livestreamer-firefox-addon

Addon for firefox to quickly open stream urls in vlc using livestreamer
GNU General Public License v3.0
18 stars 7 forks source link

Invalid Path Assumption on 32-bit Windows Platforms #50

Closed wmarone closed 8 years ago

wmarone commented 8 years ago

Just got burned by this for an hour.

The program makes an invalid assumption as to the path of where Livestreamer is located, assuming it is always running on a 64-bit platform, or that the installer and program will always be 32-bit.

On my tablet which runs Windows 10, 32-bit, Livestreamer is placed in "Program Files" while Livestreamer assumes that it lives in "Program Files (x86)" and ignores both explicit supply of the path and the PATH environment.

This was confirmed by creating said directory and copying Livestreamer over, which resolved the issue.

See here:

https://github.com/IsSuEat/open-livestreamer-firefox-addon/blob/master/lib/main.js#L178

Shockingly, and sadly, you are not the only one to make this assumption.

IsSuEat commented 8 years ago

If the livestreamer can't be found in the predefined locations it should show you a message to configure the path. Did you get that message? If not, it is a bug. If you did get it, should the message be tweaked to make it easier understandable what the problem is?

I have only tested this on Linux and a Windows 10 x64 VM.

Actually I don't think its shocking to assume 64bit of an OS in 2016 imho.

julianrichen commented 8 years ago

We can use system.architecture to get CPU architecture/bit version and supply diffetent paths.

~I can't post a link to the docs because I'm ony phone.~ https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/system

wmarone commented 8 years ago

It did prompt, and I fed it the path to livestreamer. It did not acknowledge the path, instead I received errors in the browser console. The failure was otherwise silent.

julianrichen commented 8 years ago

@wmarone #51 should fix it? If possible can you test? You will need node.js and the npm package jpm to build the addon.

On another note @IsSuEat I found this in the doc:

if ('PATH' in system.env) {
    console.log("PATH is set");
}

console.log (system.env.PATH);

I don't remember seeing environment variables last time so maybe it's new? I believe linux prefers direct paths to /usr/bin because bash/zsh/etc.. looks there first. As compared to Windows that creates 100s environment variables but it might be a better solution on Windows. This might also fix #49?

wmarone commented 8 years ago

Livestreamer installer in Windows does add livestreamer to the path, that should be a consistent way of locating it on Linux/Windows (can't say for OS X though.) Also, works now, thanks for the quick fix!