Opened 11 years ago

Closed 11 years ago

#5475 closed defect (fixed)

myth can't load plugins on x86_64

Reported by: wberrier@… Owned by: Isaac Richards
Priority: minor Milestone: 0.21.1
Component: mythtv Version: 0.21-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I'm using the packman packages for opensuse 11.0 on x86_64.

I installed the plugins, but they can't be found.

The issue is this:

access("/usr/lib/mythtv/plugins", F_OK) = -1 ENOENT (No such file or directory)

But the actual plugins are here:

wberrier@berrier:~> ls /usr/lib64/mythtv/plugins/ libmytharchive.so libmythcontrols.so libmythmusic.so libmythvideo.so

The code that loads this directory is here:

mythtv/libs/libmyth/mythcontext.cpp:

QString MythContext::GetLibraryDir?(void) {

return d->m_installprefix + "/lib/mythtv/";

}

QString MythContext::GetPluginsDir?(void) {

return GetLibraryDir?() + "plugins/";

}

GetLibraryDir? should load lib64 on this arch and should use 'libdir' that was passed to configure instead of hardcoding 'lib'.

Attachments (1)

libdirname.patch (2.6 KB) - added by Nigel 11 years ago.
Patch for trunk

Download all attachments as: .zip

Change History (7)

comment:1 Changed 11 years ago by Nigel

Wade, sorry I broke it for you. If you are able to revert to packages earlier than [17458], it will work again for you (as will creating a symlink).
My aim was to simplify the runtime plugin and filter location, buy always having them in $PREFIX/lib, but I forgot to make the change to mythtv/filters/filter-common.pro and mythplugins/configure. Looking at this afresh, people will probably hate that (install would create /usr/lib/mythtv/plugins), so I will have to pass the libname into MythContext.

comment:2 Changed 11 years ago by wberrier@…

I imagine that packagers won't like having 64bit libs in /usr/lib. (It's particularly against suse packaging policy).

But I did notice that on x86_64 USE_LIB64_PATHES is defined while compiling mythcontext.cpp. That could be used to distinguish between 'lib' and 'lib64' in 'GetLibraryDir?'.

comment:3 Changed 11 years ago by Nigel

(In [17657]) Use --libdir-name=blah to find plugins and filters. Refs #5475, #5270. Also needs patching in trunk, but that will have wait several hours.

Changed 11 years ago by Nigel

Attachment: libdirname.patch added

Patch for trunk

comment:4 Changed 11 years ago by max.greenblatt@…

Hey-

I am experiencing this issue. Where do I apply this patch and recompile?

Thanks, Max

comment:5 Changed 11 years ago by Nigel

It is already in the latest 0-21-fixes. I am still building/testing on trunk. If you want to apply on trunk, please tell me if it works for you.

comment:6 Changed 11 years ago by Nigel

Resolution: fixed
Status: newclosed

(In [17673]) Allow different "lib" directory names at runtime (plugins/filters). Closes #5475

Note: See TracTickets for help on using tickets.