plugins errors

Asked by Douglas Noga on 2014-07-02

I am running a fresh install of Ubuntu 14.04, and Firefox 30. I followed the instructions for Pipelight found at http://pipelight.net/cms/installation.html for a new installation of Pipelight.

When I get to the step to run sudo pipelight-plugin --enable silverlight to enable Silverlight, I then start up Firefox (it had not been running prior to this step). When I then look at the about:plugins, I find this:

Pipelight Error (silverlight5.1)!

    File: libpipelight-silverlight5.1.so
    Path: /usr/lib/pipelight/libpipelight-silverlight5.1.so
    Version: 0.0
    State: Enabled
    Something went wrong, check the terminal output

MIME Type Description Suffixes
application/x-pipelight-error-silverlight5.1 Error during initialization pipelighterror-silverlight5.1

So, I shutdown Firefox, ran sudo pipelight-plugin --create-mozilla-plugins , restarted Firefox, but still had the same problem.

So, at your diagnostics page I found all you see below, but I don't know how to interpret it. I realize there are failure messages in the output below, but I don't know what is wrong, nor what needs to be done. My question is, Will you please help me know what I should be doing to get this to work? Thanks. Here's the output from your diagnostics page (The plugin I selected was Silverlight 5.1):

Pipelight diagnostic:
Please select the Plugin you want to test:

User agent (Javascript)
Checking for Windows user agent ...failed
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0

Silverlight (as seen by a website)
Checking for Silverlight ...failed

Pipelight
Checking for Pipelight ...okay

Configuration of Pipelight
Checking if config exists ...okay
/usr/share/pipelight/configs/pipelight-silverlight5.1
Checking if pluginLoaderPath is set and exists ...okay
/usr/share/pipelight/pluginloader.exe
Checking if winePath is set and exists ...okay
/usr/share/pipelight/wine
Checking if winePrefix is set and exists ...okay
/home/main1/.wine-pipelight
Checking if dllPath/dllname is set and exists ...failed
You need to define either a valid dllPath/dllName or regKey
Unable to verify if the DLL exists, please check this manually!
(dllPath = c:\Program Files\Silverlight\latest\)
(dllName = npctrl.dll)
Checking if dependencyInstaller is set and exists ...okay
/usr/share/pipelight/install-dependency
Checking if dependencies are defined ...okay

Distribution
Loading file /etc/issue ...failed

Content of file: /usr/share/pipelight/configs/pipelight-silverlight5.1
Loading file /usr/share/pipelight/configs/pipelight-silverlight5.1 ...okay
#
# Enables a diagnostic mode which might be helpful to find an
# error in the configuration or installation.
# To get the error messages go to: http://fds-team.de/pipelight
#
# Information for advanced users: The diagnostic page embeds the plugin
# of type "application/x-pipelight-error" to trigger the output of some
# debug information. The plugin cannot be triggered if everything is
# working, so this only affects users with a broken installation.
# The debug output will include paths on the local filesystem and the
# linux distribution used. If you don't want to leak this information
# accidentially in case of a broken installation please either uninstall
# Pipelight or disable the diagnosticMode. [default: false]
#
diagnosticMode = true

#
# Path to the wine directory or the wine executable. When you
# specify a directory it should contain /bin/wine.
#
winePath = $share/wine

#
# Path to the wine prefix containing Silverlight
#
winePrefix = $HOME/.wine-pipelight

#
# The wine architecture for the wine prefix containing Silverlight
#
wineArch = win32

#
# DLLs to overwrite in Wine
# (prevents Wine from asking for Gecko, Mono or winegstreamer)
#
wineDLLOverrides = mscoree,mshtml,winegstreamer,winemenubuilder.exe=

#
# Path to the plugin loader executable
# (Should be set correctly by the make script)
#
pluginLoaderPath = $share/pluginloader.exe

#
# Path to the runtime DLLs (libgcc_s_sjlj-1.dll, libspp-0.dll,
# libstdc++-6.dll). Only necessary when these DLLs are not in the same
# directory as the pluginloader executable.
#
gccRuntimeDlls =

#
# Path and name to the Silverlight directory
# You should prefer using regKey to make it easier to switch between
# different versions.
#
dllPath = c:\Program Files\Silverlight\latest\
dllName = npctrl.dll

#
# Name of the registry key at HKCU\Software\MozillaPlugins\ or
# HKLM\Software\MozillaPlugins\ where to search for the plugin path.
#
# You should use this option instead of dllPath/dllName in most cases
# since you do not need to alter dllPath on a program update.
#
# regKey = @Microsoft.com/NpCtrl,version=1.0

#
# fakeVersion allows to fake the version string of Silverlight
# Allows to get around some version checks done by some websites
# when using an old version of Silverlight.
#
# fakeVersion = 5.1.30214.0

#
# overwriteArg allows to overwrite/add initialization arguments
# passed by websites to Silverlight applications. You can
# use this option as often as you want to overwrite multiple
# parameters. The GPU acceleration state of Silverlight can be controlled
# by setting:
#
# enableGPUAcceleration=false # disable GPU acceleration
# comment out # let the application decide (default)
# enableGPUAcceleration=true # force GPU acceleration
#
# You may need to overwrite the minimum runtime version if
# you use an old Silverlight version as some websites set
# an artificial limit for the version number although it
# would work with older versions.
#
# overwriteArg = minRuntimeVersion=5.0.61118.0
# overwriteArg = enableGPUAcceleration=false
# overwriteArg = enableGPUAcceleration=true
#

#
# windowlessmode refers to a term of the Netscape Plugin API and
# defines a different mode of drawing and handling events.
# On some desktop enviroments you may have problems using the
# keyboard in windowless mode, on the other hand the drawing is
# more efficient when this mode is enabled. Just choose what works
# best for you. [default: false]
#
windowlessMode = false

#
# Some browsers that don't support XEmbed only work with "real"
# windowlessmode. The following option can be used to force this
# mode. [default: false]
#
linuxWindowlessMode = false

#
# embed defines whether the Silverlight plugin should be shown
# inside the browser (true) or an external window (false).
# [default: true]
#
embed = true

#
# Path to the dependency installer script provided by the compholio
# package. (optional)
#
dependencyInstaller = $share/install-dependency

#
# Dependencies which should be installed for this plugin via the
# dependencyInstaller, can be used multiple times. (optional)
#
# Useful values for Silverlight are:
#
# -> Silverlight versions (you need to adjust dllPath):
# wine-silverlight5.1-installer
# wine-silverlight5.0-installer
# wine-silverlight4-installer
#
# -> optional depependencies (required by some streaming sites)
# wine-mpg2splt-installer
#
dependency = wine-silverlight5.1-installer
dependency = wine-mpg2splt-installer
optional-dependency = wine-wininet-installer

#
# Doesn't show any dialogs which require manual confirmation during
# the installation process, like EULA or DRM dialogs.
# [default: true]
#
quietInstallation = true

#
# In order to support browsers without NPAPI timer support
# (like Midori) we've implemented a fallback to
# NPN_PluginThreadAsyncCall. In the default configuration
# a timer based approach is preferred over async calls and the
# plugin decides by itself which method to use depending on the
# browser capabilities. Setting the following option to true
# forces the plugin to use async calls. This might be mainly
# useful for testing the difference between both event handling
# approaches. [default: false]
#
# eventAsyncCall = true

#
# The opera browser claims to provide timer functions, but they
# don't seem to work properly. When the opera detection is
# enabled Pipelight will switch to eventAsyncCall automatically
# based on the user agent string. [default: true]
#
operaDetection = true

#
# The following script fakes the user agent which is visible to
# Silverlight (not for the rest of your website). This is achieved
# by creating an object __pipelight_navigator, and then replacing
# window.navigator with this new object whenever Silverlight
# requests the navigator details.
#
executeJavascript = var __pipelight_navigator = new Object();
executeJavascript = for (var __i in window.navigator) { __pipelight_navigator[__i] = window.navigator[__i]; }
executeJavascript = __pipelight_navigator.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1';
replaceJavascript = window.navigator = __pipelight_navigator

#
# We are currently implementing hardware acceleration support, which
# can cause problems on some systems as especially specific open source
# drivers render only garbage when hardware acceleration is enabled.
# To prevent breaking any working solutions, we are currently
# implementing a whitelist system, which will enable hardware
# acceleration by default if the specified shell scripts returns 0.
# Otherwise we will disable it. You can still use
#
# overwriteArg = enableGPUAcceleration=false/true
#
# to overwrite the check results. If you really want to skip this test
# you can use: silverlightGraphicDriverCheck = /bin/true
#
silverlightGraphicDriverCheck = true

#------------------------- EXPERIMENTAL -------------------------
# Watch out: The following section contains highly experimental
# stuff! These functions are likely not working properly yet and
# might be removed at any time.

#
# In order to make it possible to let a window stay opened in fullscreen, even
# if the user clicks somewhere else it is necessary to install a window class
# hook. With some plugins this could lead to other problems! [default: false]
experimental-windowClassHook = true

#
# A sandbox is a method to isolate an untrusted program from the rest of
# the system to prevent damage in case of a virus, program errors or
# similar issues. We've been developing the ability to use a (self-created)
# sandbox, but this feature still has to be considered experimental.
# The feature will only be used when the sandbox path exists.
#
sandboxPath = $share/sandbox

Question information

Language:
English Edit question
Status:
Solved
For:
Pipelight Edit question
Assignee:
No assignee Edit question
Solved by:
Sebastian Lackner
Solved:
2014-07-13
Last query:
2014-07-13
Last reply:
2014-07-13
Sebastian Lackner (slackner) said : #1

Hi,

sorry for the delayed response, I didn't have time to write an answer to your question initially when you posted it, and then forgot it later on. Thanks for pinging me that this problem is still present.

I took a closer look, and the output seems to be very weird, and normally shouldn't be possible:

* /etc/issue is not present? Its not a critical issue, but should be present even on all _old_ Ubuntu distributions
* dllPath/dllName is present in the config file, and looks valid ? nevertheless pipelight still complains?

This might have different reasons, either your setup is just a bit customized with respect to some settings, or something is broken. Unfortunately this diagnostic page doesn't provide enough information about what exactly is wrong. To make it easier to track this down please create a log of the terminal output as described here:

https://answers.launchpad.net/pipelight/+faq/2517

This should allow to decide if its some unwanted behaviour, or if you only need some tweaks in your config files for your system.

Regards,
Sebastian

Douglas Noga (goodstuff9) said : #2

Hey, thanks for helping me with this, I appreciate it!

I got this error log from starting Firefox:

(process:2823): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

(firefox:2823): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::sm-connect after class was initialised

(firefox:2823): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::show-crash-dialog after class was initialised

(firefox:2823): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::display after class was initialised

(firefox:2823): GLib-GObject-WARNING **: Attempt to add property GnomeProgram::default-icon after class was initialised
[PIPELIGHT:LIN:unknown] attached to process.
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_1_CONFIG.
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.1.
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/main1/.config/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] trying to load config file from '/etc/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] trying to load config file from '/usr/share/pipelight/configs/pipelight-silverlight5.1'.
[PIPELIGHT:LIN:unknown] sandbox not found or not installed!
[PIPELIGHT:LIN:silverlight5.1] using wine prefix directory /home/main1/.wine-pipelight.
[PIPELIGHT:LIN:silverlight5.1] checking plugin installation - this might take some time.
[PIPELIGHT:LIN:silverlight5.1] basicplugin.c:316:checkPluginInstallation(): error in execvp command - probably dependencyInstaller/sandbox not found or missing execute permission.
[PIPELIGHT:LIN:silverlight5.1] basicplugin.c:326:checkPluginInstallation(): Plugin installer did not run correctly (exitcode = 1).
[PIPELIGHT:LIN:silverlight5.1] basicplugin.c:109:attach(): plugin not correctly installed - aborting.

I'm sorry, I don't know what else to do to "trigger" the problem as was requested here: https://answers.launchpad.net/pipelight/+faq/2517
since the problem is that the Pipelight won't install correctly.

Sebastian Lackner (slackner) said : #3

Hi,

the output is okay and exactly what I wanted (no additional WINEDEBUG flags required). Unfortunately it still looks very weird and doesn't make much sense. :/
Please also attach the output of the following 4 commands:

dpkg --list | grep pipelight

dpkg --list | grep wine-compholio

ls -al /usr/share/pipelight

head -n10 /usr/share/pipelight/install-dependency

Regards,
Sebastian

Douglas Noga (goodstuff9) said : #4

Ok, thanks again for your help, here's the output you requested:

dpkg --list | grep pipelight

ii pipelight 0.2.7.1~ubuntu14.04.1 amd64 allows usage of Silverlight through Wine
ii pipelight-multi 0.2.7.1~ubuntu14.04.1 amd64 allows usage of Windows NPAPI plugins through Wine

dpkg --list | grep wine-compholio

ii wine-compholio 1.7.22~ubuntu14.04.1 amd64 The Compholio Edition is a special build of the popular Wine software
ii wine-compholio-amd64 1.7.22~ubuntu14.04.1 amd64 The Compholio Edition is a special build of the popular Wine software
ii wine-compholio-i386 1.7.22~ubuntu14.04.1 i386 The Compholio Edition is a special build of the popular Wine software

ls -al /usr/share/pipelight

total 3192
drwxr-xr-x 5 root root 4096 Jul 13 01:29 .
drwxr-xr-x 461 root root 16384 Jul 12 23:37 ..
drwxr-xr-x 2 root root 4096 Jul 1 19:13 configs
-rwxr-xr-x 1 root root 28710 Jul 13 01:29 install-dependency
drwxr-xr-x 2 root root 4096 Jul 1 19:13 licenses
-rwxr-xr-x 1 root root 1484552 Jun 9 17:12 pluginloader64.exe
-rwxr-xr-x 1 root root 946154 Jun 9 17:12 pluginloader.exe
-rw-r--r-- 1 root root 270 Jun 9 17:12 README-pipelight
drwxr-xr-x 2 root root 4096 Jul 1 19:13 scripts
-rw-r--r-- 1 root root 2229 Jun 9 17:12 sig-install-dependency.gpg
lrwxrwxrwx 1 root root 28 Jun 9 17:12 wine -> /opt/wine-compholio/bin/wine
lrwxrwxrwx 1 root root 30 Jun 9 17:12 wine64 -> /opt/wine-compholio/bin/wine64
-rwxr-xr-x 1 root root 438458 Jun 9 17:12 winecheck64.exe
-rwxr-xr-x 1 root root 315753 Jun 9 17:12 winecheck.exe

head -n10 /usr/share/pipelight/install-dependency

#!/usr/bin/env bash

usage()
{
 echo ""
 echo "Usage: ./install-dependency DEPENDENCY1 [DEPENDENCY2 ...]"
 echo ""
 echo "Environment variables:"
 echo " WINE path to the wine executable"
 echo " WINEPREFIX usually \$HOME/.wine-pipelight"

Sebastian Lackner (slackner) said : #5

Okay, thanks. What about:

ls -al /usr/bin/env

ls -al /bin/bash

Douglas Noga (goodstuff9) said : #6

ls -al /usr/bin/env

-rwxr-xr-x 1 root root 27232 Mar 24 02:35 /usr/bin/env

ls -al /bin/bash

-rwxr-xr-x 1 root root 1017016 Apr 23 17:43 /bin/bash

Sebastian Lackner (slackner) said : #7

Hm, unfortunately this still doesn't help to solve the issue, everything looks correct so far. Please try the following commands (as regular user from a shell, _not_ root).

echo "$PATH"

file /usr/local/share/pipelight/install-dependency

WINEPREFIX=~/.wine-pipelight WINE=/opt/wine-compholio/bin/wine WINEARCH=win32 /usr/share/pipelight/install-dependency wine-silverlight5.1-installer

Besides that - do you use any additional custom settings, for example a special sandbox to run your browser (which wasn't there by default)? Was this really a direct installation of Ubuntu 14.04, or did you upgrade over time (which would explain why for example /etc/issue is missing, if it maybe wasn't present yet in very old versions)?

Sebastian Lackner (slackner) said : #8

(Please note that the third command should be all in one line, this is a single command)

Douglas Noga (goodstuff9) said : #9

I'm not aware of any custom settings.

I am not an IT person, so I can't answer your question about the "sandbox" - I don't even know what that is!

This is a new computer I purchased from System76, they installed Ubuntu 14.04 on it before they shipped it to me.

Here's the output you asked for:

echo "$PATH"

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

file /usr/local/share/pipelight/install-dependency

/usr/local/share/pipelight/install-dependency: ERROR: cannot open `/usr/local/share/pipelight/install-dependency' (No such file or directory)

WINEPREFIX=~/.wine-pipelight WINE=/opt/wine-compholio/bin/wine WINEARCH=win32 /usr/share/pipelight/install-dependency wine-silverlight5.1-installer

[install-dependency] wine-silverlight5.1-installer is already installed in '/home/main1/.wine-pipelight'.

Michael Müller (mqchael) said : #10

Hi,

seems like you have AppArmor enabled and that the profile for Firefox is set to enforce mode. Take a look at your dmesg output and check whether you see messages like:

[525586.927659] type=1400 audit(1382094229.271:58): apparmor="DENIED" operation="exec" parent=9596 profile="/usr/lib/firefox/firefox{,*[^s][^h]}" name="/usr/share/pipelight/install-dependency" pid=9634 comm="firefox" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0

The AppArmor profile for Firefox is not compatible with Pipelight. The easiest solution would be to set the mode to complain instead of enforce. You can use the following commands to accomplish this:

# install AppArmor utilities
sudo apt-get install apparmor-utils

# set Firefox profile to complain mode
sudo aa-complain usr.bin.firefox

Michael

Douglas Noga (goodstuff9) said : #11

Thank you, you were right, that was exactly my situation.

I did what you wrote above. However......

After doing what you wrote above, what must I do next? The Silverlight plugin still says "ERROR", even after stopping Firefox, running rm -rf ~/.wine-pipelight/ , and then restarting Firefox.

Sebastian Lackner (slackner) said : #12

As you're using Firefox as a next step you should run:

sudo pipelight-plugin --create-mozilla-plugins

This will clear all previous errors, and reload the plugin.

Moreover, based on the initial diagnostic output of the first post, you'll also have to install a user agent switcher for Firefox - this step is necessary since Netflix (and many other services) refuse to work, as soon as they notice you're on Linux.

Take a look here for the full instructions:

http://pipelight.net/cms/installation-user-agent.html#section_2

After this http://fds-team.de/pipelight should report "okay" for all checks.

Douglas Noga (goodstuff9) said : #13

Thank you, I was able to successfully view a movie at the Netflix site. Thanks for your help!

However, when I ran the diagnostic, I got these two errors, even though I did have the user agent installed and running, and for the Netflix site (which worked) and for the diagnostic page I was using this user agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0, here are the errors I still get, should I be worried about them?

Pipelight diagnostic:
Please select the Plugin you want to test:

User agent (Javascript)
Checking for Windows user agent ...failed
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0

Silverlight (as seen by a website)
Checking for Silverlight ...okay
Version: 5.1.30214.0

Result
Result from all tests ...failed
You need to fix your user agent by installing a user agent switcher

Best Sebastian Lackner (slackner) said : #14

Hi,

there is no need to worry as long as everything works as expected on Netflix.

Nevertheless, when you also want to use Pipelight on other streaming pages, it might probably be necessary to fix the user agent problem.

The output from the diagnostic page looks like you're either using a different user agent switcher (I suspect user agent switcher 0.7.3?!) than the one in my instructions above (user agent overrider). Not every user agent switcher changes the user agent everywhere, thats why the diagnostic page is still able to see that you're on Linux.

I'm glad that the problem is fixed now :)

Regards,
Sebastian

Douglas Noga (goodstuff9) said : #15

Oh, you were exactly correct, when I replaced the user agent switcher with the one you recommended, everything worked exactly as you predicted.

Thanks to both of you for all your help with this!!!!!

:D

Douglas Noga (goodstuff9) said : #16

Thanks Sebastian Lackner, that solved my question.

kjny (kjanakusc01) said : #17

Many thanks for the detailed discussion here! I had the same issue and was researching the FAQs to see what solutions there were to similar problems. This solution worked for me (and did not require any modification of the ~/.wine-pipelight/ path initially installed (i.e., you don't need to remove it).

NOTE to others searching this issue: the apparmor issue is good to check if Pipelight doesn't work if there were no issues upon install and the same debug messages arose upon the test (see the first message from DNoga).