The help center is still under construction.
This page is intended to gather various documentation about nspluginwrapper.
The documentation is covered by the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 license. Current authors include: <mail-me for login>.
NSPluginWrapper makes it possible to use Netscape 4 (NPAPI) plugins on platforms where they were not built for. Sample use cases include but are not limited to:
| Host | Target | Version | Comments |
|---|---|---|---|
| Linux/x86_64 | Linux/i386 | 0.9.90.1 | |
| Linux/ppc | Linux/i386 | 0.9.90.1 | Experimental, qemu-i386 |
| FreeBSD/i386 | Linux/i386 | 0.9.91 | FreeBSD 6.1, FreeBSD 6.2-RC Linux run-time |
| NetBSD/i386 | Linux/i386 | 0.9.91 | NetBSD 3.1, COMPAT_LINUX |
/usr/lib/mozilla/plugins directory.nspluginwrapper program.nspluginwrapper -i ~/downloads/npjp2-0.0.2/src/npjp2.so
nspluginwrapper -v -a -u
nspluginwrapper -r ~/.mozilla/plugins/npwrapper.npjp2.so
glibc, or remove the tls directories from your emulated environment, or patch /usr/lib/nspluginwrapper/npviewer so that it sets a suitable LD_ASSUME_KERNEL variable.fleur.swf renders at most 2 frames per second on my Powerbook G4/400, at best. Typical performance is rather 1 to 2 seconds per frame. Alternatives are: adding AltiVec optimizations to SSE emulation and/or Ciel project author to revive his JITThe following plugins work reasonnably well natively, and at a lesser extent in emulated mode:
$ ./configure && make npviewer.bin
$ ./configure && make # make install
npviewer.bin program to your installation directory, typically /usr/lib/nspluginwrapper/i386/.–enable-biarch option.–enable-generic option.
Some –with options were moved to –enable style. In particular, –enable-biarch replaces –with-biarch and –enable-generic replaces –generic-build. Besides, the binaries are no longer stripped by default. Should you wish to strip the installed files, you should configure with the –enable-strip option.
Previous versions of nspluginwrapper used to incorrectly wrap root plugins system-wide. The fix introduced in this version is very minimalistic and works as follows: any plugin located under ~root will be wrapped into his private plugins directory (~root/.mozilla/plugins). If a wrapped root plugin is found in any system location during upgrade, it will be moved to the ~root private location instead.
This release fixes support for WebKit-based browsers. In particular, this should fix WebKit bug #18883 whereby plugins were crashing on exit. However, you will also need a recent enough snapshot of WebKit (>= rev 33570, see WebKit bug #18882).
A bug was introduced in version 0.9.91.5 which prevented Acrobat Reader 8 (8.1.2) from working correctly: no keyboard event was propagated to the plugin. This is now fixed.
waitid, tgkill, futex syscalls and also coverage of newer CLONE_* flags.^W testcase at Addicting Games is failing again with this Beta. This is not an nspluginwrapper problem but a generic issue with Flash Player 10 Beta that also occurs with 32-bit web browsers.NSPluginWrapper now has improved support for plugins using the XEMBED protocol. In particular, this addresses both the DiamondX XEmbed example plugin and Flash Player 9 Update 3. Note that Konqueror NPAPI emulation layer still doesn't support the XEMBED protocol, so this only works for Mozilla-based browsers.
Debian bug #435912 is about Flash Player grabbing the keys from other windows even if the Flash Player window lost the fous. The way nspluginwrapper handles input focus has now changed and thus also removing some other (rare?) crashes. However, this curently relies much on XEMBED support. And, since Konqueror doesn't implement it yet, this bug is still available there. I also suspect Flash Player is not totally innocent to this problem.
Support for Konqueror was added in version 0.9.90.4. However, it required an additional patch to get 64-bit Konqueror on-par with NPAPI defined types. Now, nspluginwrapper will try to detect broken 64-bit versions of Konqueror at run-time and should be able to address both cases from a single binary. The heuristics are quite reasonable, please report otherwise.
Martin Stransky from Red Hat Engineering has added support for 64-bit plugins, among other things to be integrated in a future release. This means you can wrap both i386 and x86_64 plugins into an x86_64 browser. This is so that you can let a crashing plugin die alone without bringing the browser with him into the grave.
NSPluginWrapper now use anonymous sockets on Linux systems. This doesn't change the run-time behaviour of NSPluginWrapper. However, if you are a distributor or someone who wants to rebuild the packages himself, you have to know that Linux binaries intended to run on other OS have to be built with the –generic-build option. Otherwise, native Linux builds now use anonymous sockets by default.
Note: packages available on this website still use named sockets so that they can be reused verbatim on *BSD systems.
Scripting support through the npruntime API is now supported. You can disable npruntime with the NPW_DISABLE_NPRUNTIME environment variable. Please note that Konqueror does not currently support this API. So, this will only work with Mozilla-based browsers.
Flash Player 9 beta 1 (9.0.21.55) is not supported. Flash Player 9 beta 2 (9.0.21.78) will work correctly, including with sites using javascript to navigate through other pages. There is a check to prevent the use of FP9 beta 1.
Most of Linux/x86_64 distributions can't build biarch (i.e. 32-bit and 64-bit) packages at once. Henceforth, a subset of LSB Desktop 3.1 is now included so that the 32-bit viewer can be built effortlessly. You only have to make sure that your compiler supports generation of -m32 code.
NSPluginWrapper now supports FreeBSD and NetBSD hosts. Please read the Platforms Support Matrix and Distribution-specific Notes sections for further details.
Initial support for Konqueror browser is added in this release. However, you need an x86_64 version built with fixed NPAPI headers. The following patch was tested for kdebase 3.4.2 and above.
Flash Player 9 beta for Linux does not work correctly yet. In particular, the plugin will crash on ButtonRelease events (in an XtDispatchEventToWidget callback) when the button represents a link to another page. Independently, Valgrind reports a very high number of use of uninitialised value, conditional jump or move depends on uninitialised value and similar errors. It's not known yet whether this is caused by nspluginwrapper or not.
urpmi will get the necessary dependencies even for 32-bit packages provided you have an i586 media available.nspluginwrapper-i386 package with –ignorearch, if you don't want to regenerate that package for your architecture. Make sure you have a GTK+-2.0 capable emulated environment and any other library required by your plugins. A convenience script – /usr/lib/nspluginwrapper/mkruntime – is available to help you install a 32-bit runtime from a Mandriva Linux 2006.0 RPMs repository.# urpmi gtk2-devel 'devel(libgtk-x11-2.0)' $ rpm --rebuild --with biarch nspluginwrapper.src.rpm
nspluginwrapper-i386 from the nspluginwrapper.i586.rpm package with repackage.sh:$ NSPLUGINWRAPPER_SOURCES/utils/repackage.sh /FULL_PATH/nspluginwrapper.i586.rpm
unstable / utils. You are invited to use those packages instead of (inappropriately?) using alien to convert RPM packages to Debian package format.'Etch' users can also install the packages from DIP Consultants.linux-atk, linux-expat, linux-fontconfig, linux-glib2, linux-gtk2, linux-jpeg, linux-pango, linux-png, linux-tiff, linux-xorg-libs, linux_base-fc-4.# make -C /usr/ports/multimedia/linux-realplayer install clean
# make -C /usr/ports/www/linux-flashplugin7 install clean
# make -C /usr/ports/print/acroread7 install clean
/usr/X11R6/lib/browser_plugins is made easy. # nspluginwrapper -v -a -i
configure script will auto-detect FreeBSD and thus won't build the Linux/i386 viewer. You have to build the viewer on a Linux/i386 system with the –generic-build option or extract it from the nspluginwrapper-i386 RPM package available here.suse_gtk2-10.0 package as it will install the necessary dependencies. Note that you may also need the suse_compat-10.0 package as it provides the necessary libstdc++.so.5 for Real Player.# cd /usr/pkgsrc/multimedia/RealPlayerGold && make install clean
# cd /usr/pkgsrc/multimedia/ns-flash && make install clean
# cd /usr/pkgsrc/print/acroread7 && make install clean
# cd /usr/pkgsrc/print/acroread5 && make install clean
/usr/pkg/lib/firefox/plugins is made easy. # nspluginwrapper -v -a -i
configure script will auto-detect NetBSD and thus won't build the Linux/i386 viewer. You have to build the viewer on a Linux/i386 system with the –generic-build option or extract it from the nspluginwrapper-i386 RPM package available here.
FlashPlayer 9 now uses the ALSA sound system. As such, you will need the Linux/i386 alsa libraries on your system to get sound working. Generally, on decent-enough distributions, the FlashPlayer package has the needed dependency (e.g. libasound.so.2).