From owner-freebsd-gnome@FreeBSD.ORG Sat Jul 29 23:16:52 2006 Return-Path: X-Original-To: gnome@freebsd.org Delivered-To: freebsd-gnome@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 869DB16A4E1 for ; Sat, 29 Jul 2006 23:16:52 +0000 (UTC) (envelope-from infofarmer@gmail.com) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.180]) by mx1.FreeBSD.org (Postfix) with ESMTP id BCE6243D49 for ; Sat, 29 Jul 2006 23:16:51 +0000 (GMT) (envelope-from infofarmer@gmail.com) Received: by py-out-1112.google.com with SMTP id b36so164642pyb for ; Sat, 29 Jul 2006 16:16:51 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=cOTQVI5b+yvxbzgT9NWDPrndVKHqBeaB8SmEB12l3FrFCLsKfm3xrBgFkeLxEHFBe+An6BSbVI5BWlxf6pWYAkxDVqhY2lcGhOCVptFDYye6rzCilx9vKsPrGt0xbu5pfnryZPG3zueRh/cLNgGb//cqAf5klggKIi3vDS84Teg= Received: by 10.35.93.15 with SMTP id v15mr1421057pyl; Sat, 29 Jul 2006 16:16:50 -0700 (PDT) Received: by 10.35.105.10 with HTTP; Sat, 29 Jul 2006 16:16:50 -0700 (PDT) Message-ID: Date: Sun, 30 Jul 2006 03:16:50 +0400 From: "Andrew Pantyukhin" To: gnome@freebsd.org, "Michael Johnson" , "Arjan van Leeuwen" , "Jeremy Messenger" MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Subject: NPAPI/XPI support in native gecko apps and other ports X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: infofarmer@FreeBSD.org List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Jul 2006 23:16:52 -0000 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. Thanks!