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
libmex.so: file format elf32-i386
Program Header:
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**12
filesz 0x000065b4 memsz 0x000065b4 flags r-x
LOAD off 0x000065b4 vaddr 0x000075b4 paddr 0x000075b4 align 2**12
filesz 0x00000628 memsz 0x000006b4 flags rw-
DYNAMIC off 0x00006b24 vaddr 0x00007b24 paddr 0x00007b24 align 2**2
filesz 0x000000b8 memsz 0x000000b8 flags rw-
Dynamic Section:
NEEDED libut.so
NEEDED libmx.so
NEEDED libc.so.6
INIT 0x22cc
FINI 0x6030
HASH 0x94
STRTAB 0x1158
SYMTAB 0x598
STRSZ 0xb80
SYMENT 0x10
PLTGOT 0x79d8
PLTRELSZ 0x240
PLTREL 0x11
JMPREL 0x208c
REL 0x1f3c
RELSZ 0x150
RELENT 0x8
VERDEF 0x1ea4
VERDEFNUM 0x2
VERNEED 0x1edc
VERNEEDNUM 0x3
VERSYM 0x1d2c
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 ?
Thanks,
TimT.
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list