newcomer to the list, so if I'm in the wrong place with this question, please direct me to the right place.
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 ?