NPAPI/XPI support in native gecko apps and other ports

Jeremy Messenger mezz7 at cox.net
Tue Aug 1 18:46:00 UTC 2006


On Sat, 29 Jul 2006 18:16:50 -0500, Andrew Pantyukhin  
<infofarmer at gmail.com> wrote:

> Hello!
>
> As you might have noticed, I've been working on NPAPI and
> XPI infrastructures to make user experience more enjoyable
> while improving flexibility of the way plugins and extensions
> are managed.
>
> I understand (http://wiki.freebsd.org/Gnome) there are plans
> to devise a separate helper port which would create links and
> manage browser_plugins dir. I wanted to go the very same
> way with XPI, but I seem to have found an alternative, which
> some find more likeable.
>
> Implementation details can be found here:
> http://wiki.freebsd.org/NPAPI
> http://wiki.freebsd.org/XPI
> http://wiki.freebsd.org/Linkfarming
>
> In a nutshell, to make an app fully NPAPI/XPI-compatible
> you need to:
>
> a. Copy links on installation (a line in Makefile and in plist)
> b. Preen links on deinstallation (a line in plist)
>
> To give an idea, some linux-gecko ports have these lines:
>
> in do-install targets:
>
> @${CP} -R ${LOCALBASE}/lib/npapi/symlinks/${APP_NAME}/ \
>   ${PREFIX}/lib/${APP_NAME}/plugins/
> @${CP} -R ${LOCALBASE}/lib/xpi/symlinks/${APP_NAME}/ \
>   ${PREFIX}/lib/${APP_NAME}/extensions/
>
> in plists:
>
> @exec /bin/cp -R %%LOCALBASE%%/lib/npapi/symlinks/%%APP_NAME%%/
> %D/lib/%%APP_NAME%%/plugins/
> @exec /bin/cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%APP_NAME%%/
> %D/lib/%%APP_NAME%%/extensions/
> @unexec /usr/bin/find %D/lib/%%APP_NAME%%/plugins/  -depth 1 -type l  
> -delete
> @unexec /usr/bin/find %D/lib/%%APP_NAME%%/extensions/  -depth 1 -type l  
> -delete
>
> It is a good idea to add "2>/dev/null || true" at the end of each line.
>
> As you can see, only 3 lines are needed for NPAPI (plugins) support
> and 3 lines for XPI (extensions) support.
>
> It would be great if we could work together and introduce the
> support to the apps you maintain. If there's anything you don't
> like about infrastructure, it's quite understandable and let's
> discuss it. The final goal is to make both users and developers
> a little bit happier.

Can you remove create any symlink in share/linux-opera/plugins please? It  
is causing linux-opera to display two plugins if I add  
lib/npapi/symlinks/linux-opera support in linux-opera (going to commit it  
soon). I personal rather to have linux-opera to find any plugins in  
lib/npapi/symlinks/linux-opera than have stuff in  
share/linux-opera/plugins. It is painless that way. Thanks!

While I am here, as for the other browsers that will have a several  
symlinks in plugins directory by NPAPI and XPI stuff, you will need to add  
@dirrmtry path/browsers/{extensions,plugins} and @dirrmtry path/browsers  
for plist in Makefile.npapi and browsers' plist. For example:

	1) install linux-flashplugins7 or other stuff
	2) deinstall one of browser
	3) uninstall linux-flashplugins7 or other stuff
	4) path/browsers/{extensions,plugins} will be ending up leftover.

Cheers,
Mezz

> Thanks!


-- 
mezz7 at cox.net  -  mezz at FreeBSD.org
FreeBSD GNOME Team  -  FreeBSD Multimedia Hat (ports, not src)
http://www.FreeBSD.org/gnome/  -  gnome at FreeBSD.org
http://wiki.freebsd.org/multimedia  -  multimedia at FreeBSD.org


More information about the freebsd-gnome mailing list