ports/125832: mail/enigmail-seamonkey: libenigmime.so missing [PATCH]

Marcin Cieslak saper at SYSTEM.PL
Mon Jul 21 14:50:03 UTC 2008


>Number:         125832
>Category:       ports
>Synopsis:       mail/enigmail-seamonkey: libenigmime.so missing [PATCH]
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 21 14:50:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Marcin Cieslak
>Release:        FreeBSD 7.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD radziecki.saper.info 7.0-STABLE FreeBSD 7.0-STABLE #7: Fri Jul 11 17:35:27 CEST 2008 saper at radziecki.saper.info:/usr/obj/usr/src/sys/VAIO amd64

Using Seamonkey 1.1.11, same with older version (at least as old as 1.1.8)

>Description:

After installing XPI generated via the mail/enigmail-seamonkey (you have to install as
root otherwise it does not work) the interface contains OpenPGP menus and preferences.

Any attempt to use OpenPGP features results in the message "Enigmail Service Not Available" in the console log. The problem is that libenigmime.so does not get installed. Once you put 
it per hand in /usr/local/lib/seamonkey/components, everything works.

>How-To-Repeat:

Make sure /usr/local/lib/seamonkey does not exist.

Install clean seamonkey, then install mail/enigmail-seamonkey port.

Start the browser as root and open /usr/local/share/enigmail/enigmail-0.95.6-seamonkey-freebsd-amd64.xpi.

Install enigmail.

Start the browser as root again to have all the components registered.

Start the browser as the normal user and try to do any sign/encrypt/key management operation.

>Fix:

I have posted a more detailed discussion and two possible fixes here:

http://saper.info/enigmail_service_not_available

One of the possible patches in included below, should be put in the "files/" directory:

--- mailnews/extensions/enigmail/genxpi.orig	2007-07-09 10:12:23.000000000 +0200
+++ mailnews/extensions/enigmail/genxpi	2008-07-21 03:15:51.970437845 +0200
@@ -70,12 +70,14 @@
 
 
 const ABI_PLATFORM_LINUX="Linux_x86-gcc3";
+const ABI_PLATFORM_FREEBSD="FreeBSD";
 const ABI_PLATFORM_WIN="WINNT_x86-msvc";
 const ABI_PLATFORM_DARWIN_PPC="Darwin_ppc-gcc3";
 const ABI_PLATFORM_DARWIN_X86="Darwin_x86-gcc3";
 const ABI_PLATFORM_OS2="OS2_x86-gcc3";
 
 const APP_PLATFORM_LINUX="linux";
+const APP_PLATFORM_FREEBSD="FreeBSD";
 const APP_PLATFORM_WIN="win";
 const APP_PLATFORM_MAC="mac";
 const APP_PLATFORM_OS2="os2";
@@ -107,21 +109,21 @@
 // which platform?
 function getPlatform() {
   var platformStr;
-  var platformNode = "";
+  var platformNode = APP_PLATFORM_OTHER;
 
   if('platform' in Install) {
     platformStr = new String(Install.platform);
 
-    if (!platformStr.search(/^Macintosh/))
+    if (platformStr.search(/^Macintosh/) >= 0)
       platformNode = APP_PLATFORM_MAC;
-    else if (!platformStr.search(/^Win/))
+    else if (platformStr.search(/^Win/) >= 0)
       platformNode = APP_PLATFORM_WIN;
-    else if (!platformStr.search(/Linux/))
+    else if (platformStr.search(/Linux/) >= 0)
       platformNode = APP_PLATFORM_LINUX;
-    else if (!platformStr.search(/^OS\/2/))
+    else if (platformStr.search(/FreeBSD/) >= 0)
+      platformNode = APP_PLATFORM_FREEBSD;
+    else if (platformStr.search(/^OS\/2/) >= 0)
       platformNode = APP_PLATFORM_OS2;
-    else
-      platformNode = APP_PLATFORM_OTHER;
   }
 
   return platformNode;
@@ -161,6 +163,9 @@
   case APP_PLATFORM_LINUX:
     addDirectory("", "platform/"+ABI_PLATFORM_LINUX+"/components",    fComponents, "");
     break;
+  case APP_PLATFORM_FREEBSD:
+    addDirectory("", "platform/"+ABI_PLATFORM_FREEBSD+"/components",    fComponents, "");
+    break;
   case APP_PLATFORM_WIN:
     addDirectory("", "platform/"+ABI_PLATFORM_WIN+"/components",    fComponents, "");
     break;
@@ -171,6 +176,9 @@
   case APP_PLATFORM_OS2:
     addDirectory("", "platform/"+ABI_PLATFORM_OS2+"/components",    fComponents, "");
     break;
+  case APP_PLATFORM_OTHER:
+    alert("Unsupported platform, no Enigmail support currently available.");
+    cancelInstall(ACCESS_DENIED);
   }
 
   err = getLastError();

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list