newcomer to the list, so if I'm in the wrong place with this question, please direct me to the right place.
The problem:
I'm trying to package an application that uses an old version (13.1) of the matlab runtime.
I've created a package, matlab-base, which provides the following
Provides: ../../bin/glnx86/libmex.so(libmex.INTERNAL) ../../bin/glnx86/libmx.so(libmx.INTERNAL) ../../extern/lib/glnx86/libmmfile.so(libmmfile.INTERNAL) libmex.so libmmfile.so libmx.so
This package installs without problems.
A second package contains the application itself. When I attempt to install that, I get the following error message rpm -i /cws/utt/linux-export/timt/root/RPMS/x86_64/timtmatlab-9.9.9-d.x86_64.rpm
error: Failed dependencies: libmmfile.so(libmmfile.INTERNAL) is needed by timtmatlab-9.9.9-d.x86_64 libmx.so(libmx.INTERNAL) is needed by timtmatlab-9.9.9-d.x86_64
I also tried putting the application in the same package as the libraries, but I get the same error.
I looked at the source code for find-provides and find-requires, and noticed that for shared libraries, objdump -p is used to determine the provides.
For (e.g.) libmex.so , the output is: objdump -p libmex.so
Version definitions: 1 0x01 0x0db142af ../../bin/glnx86/libmex.so 2 0x00 0x0ab6926c libmex.INTERNAL
Version References: required from libut.so: 0x0c16245c 0x00 05 libut.INTERNAL
required from libmx.so: 0x0c1ee45c 0x00 04 libmx.INTERNAL required from libc.so.6: 0x0d696910 0x00 03 GLIBC_2.0
That explains the ../../bin/glnx86 in the provides part.
My question is:
- How can I package these files in such a way that the correct names are resolved ? - Failing that, is there anyway I can override the provides or requires part of the rpm ? - Does any body have any experience packaging a matlab runtime ?