Bug 40149 - Latest everybuddy port breaks modules, totally unfunctional
Summary: Latest everybuddy port breaks modules, totally unfunctional
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Jim Mock
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-03 15:50 UTC by Chris Shenton
Modified: 2002-07-03 23:21 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Shenton 2002-07-03 15:50:01 UTC
Everybuddy looks for modules (e.g. for AIM, ICQ) in
/usr/X11R6/lib/everybuddy/.  The port does install modules there, but
everybuddy doesn't find them.  Here's the dir:

  /usr/X11R6/lib/everybuddy/modules:
  used 2088 available 1440658
  drwxr-xr-x  2 root  wheel     512 Jul  3 09:58 .
  drwxr-xr-x  3 root  wheel     512 Jul  3 09:58 ..
  -rwxr-xr-x  1 root  wheel   56028 Jul  3 09:58 aim-toc.so
  -rwxr-xr-x  1 root  wheel   13533 Jul  3 09:58 autotrans.so
  -rwxr-xr-x  1 root  wheel  101314 Jul  3 09:58 icq.so
  [... the rest elided ...]

It appears that it's only looking for files of extension ".la".
Here's the code from work/src/plugin.c near line 152:

/* Find names which end in .la, the expected module extension */
int select_module_entry(const struct dirent *dent) {
        int len=0;
        char *ext;

        len=strlen(dent->d_name);
        if(len<4)
           return(0);
        ext=(char *)dent->d_name;
        ext+=(len-3);
        eb_debug(DBG_CORE, "select_module_entry: %s[%s]\n", dent->d_name, ext);
        if(!strncmp(ext, ".la", 3))
           return(1);
        return(0);
}

Since the modules the port installed end in .so, no legitimate modules
are found, rendering everybuddy useless.

Fix: 

Unknown.  I tried tweaking the code to allow it to return(1) when is
saw the .so files instead of (Linux-specific) .la files, but that
failed.  I don't know why.  

This may be a Everybuddy problem rather than a port problem. I've
tried to submit a report to their Bugzilla system but it seems
a bit shakey.
How-To-Repeat: 
Run everybuddy from a terminal, turn on debugging (in Tools) and watch
the console output:

 plugin.c[255]:load_modules - >Entering
 plugin.c[152]:select_module_entry - select_module_entry: aim-toc.so[.so]
 plugin.c[152]:select_module_entry - select_module_entry: icq.so[.so]
 [...] 
 plugin.c[152]:select_module_entry - select_module_entry: autotrans.so[.so]
 plugin.c[296]:load_modules - <No modules found in /usr/X11R6//lib/everybuddy/modules, returning.

Note that the code doesn't tell you that the file found is NOT a valid
module.
Comment 1 Ying-Chieh Liao freebsd_committer freebsd_triage 2002-07-03 16:25:50 UTC
Responsible Changed
From-To: freebsd-ports->jim

over to maintainer
Comment 2 Jim Mock freebsd_committer freebsd_triage 2002-07-03 23:21:09 UTC
State Changed
From-To: open->closed

I think I've fixed this now.