Bug 54450 - Evolution address book datasource inactive
Summary: Evolution address book datasource inactive
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
3.6.1.2 release
Hardware: All All
: medium normal
Assignee: David Tardon
URL:
Whiteboard: target:3.7.0 target:3.6.2
Keywords: regression
Depends on:
Blocks: 32948
  Show dependency treegraph
 
Reported: 2012-09-03 16:45 UTC by Lionel Elie Mamane
Modified: 2012-09-10 10:18 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
evolution address book driver registration (340 bytes, application/xml)
2012-09-03 16:45 UTC, Lionel Elie Mamane
Details
magic "now it works" patch (in combination with manual file copy) (2.76 KB, patch)
2012-09-03 16:48 UTC, Lionel Elie Mamane
Details
my measly try to get the install system to install evoab module (428 bytes, patch)
2012-09-03 16:50 UTC, Lionel Elie Mamane
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lionel Elie Mamane 2012-09-03 16:45:39 UTC
Created attachment 66563 [details]
evolution address book driver registration

TEST1

Reproduction instructions:

1) compile LibO with --enable-evolution2 passed to ./autogen.sh
   (our official builds don't have that)

2) run LibreOffice

3) Menu File / Wizards / Address Data Source

Actual Behaviour: Choices "Evolution", "Groupwise" and "Evolution LDAP" are missing

Expected behaviour: these choices are present.


TEST2

Reproduction instructions:

1) compile LibO with --enable-evolution2 passed to ./autogen.sh
   (our official builds don't have that)

2) run LibreOffice

3) open attachment 47889 [details]

4) in the left pane, click on "tables"


Actual Behaviour: Error message "no SDBC driver found for URL"

Expected behaviour: list of Evolution address books, e.g.: "Personal", appears in the lower right pane


LibreOffice 3.4 (Debian packages) has the "expected behaviour".
(Our .deb packages do not, but that's because it is not enabled)


My analysis shows that the driver (libevoablo.so) is:

1) Not installed
2) Not registered

The evolution address book works correctly if I:

1) copy the attached evoab.rdb to install/program/services/
2) copy workdir/unxlngx6/LinkTarget/Library/libevoablo.so to ./install/program/
3) apply the attached patch

Then it all works! Remaining question is: How to cause our build system to do that?


This whole install / registration stuff is a bit of a magic blackbox for me. For example, the mozab driver somehow ends up in install/program/services.rdb, but I cannot find *how* so that I can do the same with evoab. Weirdly, mozab is not in 
workdir/unxlngx6/Rdb/ure/services.rdb, but it is in install/program/services/services.rdb

I took "inspiration" from PostgreSQL-SDBC to generate a working evoab.rdb that I could drop there. It would maybe be better to put evoab also in services.rdb rather than its own file?


I tried to hack our install system to do "the same with evoab than with mozab", but failed to have it make what I wanted.


@dtardon: you switched connectivity to gbuild; could you please double-check that  this regression was not introduced during that switch, in that the gbuild fails to do what the dmake did? Thanks.


Mozab section in services.rdb:


    <component loader="com.sun.star.loader.SharedLibrary" uri="vnd.sun.star.expand:$LO_LIB_DIR/libmozab2lo.so">
        <implementation name="com.sun.star.comp.mozilla.MozillaBootstrap">
            <service name="com.sun.star.mozilla.MozillaBootstrap"/>
        </implementation>
        <implementation name="com.sun.star.comp.sdbc.MozabDriver">
            <service name="com.sun.star.sdbc.Driver"/>
        </implementation>
    </component>
Comment 1 Lionel Elie Mamane 2012-09-03 16:48:20 UTC
Created attachment 66564 [details]
magic "now it works" patch (in combination with manual file copy)
Comment 2 Lionel Elie Mamane 2012-09-03 16:50:15 UTC
Created attachment 66565 [details]
my measly try to get the install system to install evoab module
Comment 3 Michael Meeks 2012-09-06 16:20:55 UTC
https://bugzilla.novell.com/show_bug.cgi?id=777320 may be related, though that's a crash under KDE :-)
Comment 4 David Tardon 2012-09-07 08:27:22 UTC
(In reply to comment #0)
> Created attachment 66563 [details]
> evolution address book driver registration
> 
> TEST1
> 
> Reproduction instructions:
> 
> 1) compile LibO with --enable-evolution2 passed to ./autogen.sh
>    (our official builds don't have that)
> 
> 2) run LibreOffice
> 
> 3) Menu File / Wizards / Address Data Source
> 
> Actual Behaviour: Choices "Evolution", "Groupwise" and "Evolution LDAP" are
> missing
> 
> Expected behaviour: these choices are present.

I see them just fine.

> 
> 
> TEST2
> 
> Reproduction instructions:
> 
> 1) compile LibO with --enable-evolution2 passed to ./autogen.sh
>    (our official builds don't have that)
> 
> 2) run LibreOffice
> 
> 3) open attachment 47889 [details]
> 
> 4) in the left pane, click on "tables"
> 
> 
> Actual Behaviour: Error message "no SDBC driver found for URL"
> 
> Expected behaviour: list of Evolution address books, e.g.: "Personal", appears
> in the lower right pane

Yup, works here too.

> My analysis shows that the driver (libevoablo.so) is:
> 
> 1) Not installed
> 2) Not registered
> 

My analysis shows that that is not true :-)

> This whole install / registration stuff is a bit of a magic blackbox for me.
> For example, the mozab driver somehow ends up in install/program/services.rdb,
> but I cannot find *how* so that I can do the same with evoab. Weirdly, mozab is
> not in 
> workdir/unxlngx6/Rdb/ure/services.rdb, but it is in
> install/program/services/services.rdb

It is in workdir/unxlngx6/Rdb/uno_services.rdb . ure/services.rdb is for URE services only.

> 
> I took "inspiration" from PostgreSQL-SDBC to generate a working evoab.rdb that
> I could drop there. It would maybe be better to put evoab also in services.rdb
> rather than its own file?

It has never had a rdb file of its own, i.e., its service description has always been placed into services.rdb .

> 
> 
> I tried to hack our install system to do "the same with evoab than with mozab",
> but failed to have it make what I wanted.

This happens in postprocess/packcomponents/makefile.mk .

> 
> 
> @dtardon: you switched connectivity to gbuild; could you please double-check
> that  this regression was not introduced during that switch, in that the gbuild
> fails to do what the dmake did? Thanks.

Well, it is evident that it does work at least somewhere :-) It is possible there is some other condition that is true here but not in your build and which causes the evoab driver not to be included in the installation. I will double check for this.
Comment 5 David Tardon 2012-09-07 09:55:29 UTC
I think I see the problem: libevoablo.so is installed in optional module "gnome" (unconditionally!), which is only added to the installation set if gconf, gio or gnomevfs are enabled. It is possible that I missed one more condition during the conversion, but I would rather guess it had already been broken.

But the component should still be registered in services.rdb ...
Comment 6 David Tardon 2012-09-07 10:48:02 UTC
should be better now
Comment 7 Not Assigned 2012-09-07 10:50:19 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=5e19849479ee25e1ed1c7965588ce5497831614b

fdo#54450 install evolution DB driver correctly



The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 8 Not Assigned 2012-09-07 13:39:21 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "libreoffice-3-6":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=bb1511c00acb25c607e8c885f33f1f313b5ea098&g=libreoffice-3-6

fdo#54450 install evolution DB driver correctly


It will be available in LibreOffice 3.6.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 9 Lionel Elie Mamane 2012-09-10 10:18:46 UTC
(In reply to comment #4)
> (In reply to comment #0)

>> For example, the mozab driver somehow ends up in install/program/services.rdb,
>> but I cannot find *how* so that I can do the same with evoab. Weirdly, mozab is
>> not in 
>> workdir/unxlngx6/Rdb/ure/services.rdb, but it is in
>> install/program/services/services.rdb

> It is in workdir/unxlngx6/Rdb/uno_services.rdb . ure/services.rdb is for URE
> services only.

Ah, I naively "just" did a "find . services.rdb" to find out where that file came from.

>> I tried to hack our install system to do "the same with evoab than with mozab",
>> but failed to have it make what I wanted.

> This happens in postprocess/packcomponents/makefile.mk .

Ah, I see now. Thanks.