Re: Multilib Middle-Ground

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Denis Leroy wrote:
Rahul Sundaram wrote:
Les Mikesell wrote:
Paul Howarth wrote:

Stripping of pathname-based and package-name based dependencies I can understand, but not the library deps.

Are they the same across all RPM based systems?

Yes, they are and the third party packages have no excuse if they are deliberately disabling the automatic dependency mechanisms.

It's not that simple. VMware does this for a simple reason: they want a single RPM that works on *all* distros. Essentially it's like static linking (except they don't, they just ship their own dependencies). VMware would otherwise have fairly complex dependencies (gtkmm comes to mind) that would force them to provide probably a different RPM for each <distro,version> pair... There's simply no easy way to distribute closed-source softare for Linux, as we all know.

Isn't this the basic algorithm that's needed to solve the library dependency problem?

#!/usr/bin/python
import os
import sys

app = 'PROPRIETARY_APP'
missingLibs = []
if os.exists('/usr/lib64/%s' % app):
    libdir = '/usr/lib64/%s' % app
elif os.exists('/usr/lib/%s' % app):
    libdir = '/usr/lib/%s' % app
else:
    print 'Warning: Cannot find private app dir.'
    # Attempt to start the app.  The OS might provide all the necessary
    # libraries.
    sys.exit(os.system(app))

libToPrivateDir = {'libfoo.so.1': '%s/libfoo1' % libdir,
        'libbar.so.2': '%s/libbar2' % libdir}

for line in os.popen(['ldd', os.path.join('/usr/bin',app)]):
    tokens = line.split()
    if '=>' not in tokens:
        continue
    if ['not', 'found'] == tokens[-2:]:
        missingLibs.append(tokens[0])
path = [libToPrivateDir[lib] for lib in missingLibs]

current_path = os.environ('LD_LIBRARY_PATH')

if current_path:
    path.insert(0, current_path)

if path:
    os.environ['LD_LIBRARY_PATH'] = ':'.join(path)
sys.exit(os.system(app))

--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux