[lo-4.2] regview fails to show rdb files

Stephan Bergmann sbergman at redhat.com
Tue Dec 10 02:59:56 PST 2013


On 12/10/2013 05:18 AM, Neeraj Rai wrote:
> I pulled a 4.2 version on Nov 23 and again today. Both seem to show this
> behaviour.
> The regview doesn't show the rdb file
>
> $./instdir/ure/bin/regview  ./instdir/program/types/oovbaapi.rdb
>       open registry "./instdir/program/types/oovbaapi.rdb" failed
>
> I created an rdb file using idlc and regmerge, which has no such issue.
> I suspect this is causing some other unexplained issues for me on centos
> 6.2.
> Has anyone else run into this ?
> Any advise on how to approach would be appreciated.

Beginning with LO 4.1, we move away from the old .rdb format for UNOIDL 
type data and gradually replace it with a new format (that is more 
compact and faster to process).

The LO SDK still uses the old format for now.  If you build .rdb files 
for external applications or LO extensions, you will do so with the 
existing SDK tools (idlc, regmerge, regview) and the generated files are 
in the old format.

The .rdb files that are included in LO itself (ure/share/misc/types.rdb, 
program/types/offapi.rdb, program/types/oovbaapi.rdb) already use the 
new format since LO 4.1.  This should be mostly transparent to SDK 
users, as most of the tools that operate on .rdb files (cppumaker, 
javamaker, etc.) will accept both the old and the new format as input. 
(And at runtime, the URE and LO of course also accept both formats now.)

Only the low-level tools regmerge and regview have not been updated, 
they continue to only work with the old format.  However, beginning with 
LO 4.2, there is a new tool unoidl-read to convert any .rdb file (both 
old and new format) into readable form.  For now, it is only a 
build-time tool (in workdir; and if you call it manually you need to 
extend LD_LIBRARY_PATH so it finds its libs), and you call it with the 
rdb file to translate, preceded by any rdb files necessary to resolve 
types mentioned in later rdb files.

That is, to show the content of instdir/program/types/oovbaapi.rdb on 
Linux, do

> LD_LIBRARY_PATH=instdir/ure/lib workdir/LinkTarget/Executable/unoidl-read instdir/ure/share/misc/types.rdb instdir/program/types/offapi.rdb instdir/program/types/oovbaapi.rdb

(And yes, I really need to write all this down somewhere...)

Stephan


More information about the LibreOffice mailing list