Bug 468524

Summary: Evolution plugin broken again (RPM bug?)
Product: [Fedora] Fedora Reporter: Erik van Pienbroek <erik-fedora>
Component: mail-notificationAssignee: Dmitry Butskoy <dmitry>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: rawhideCC: dmitry, fedora, pmatilai
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-10-27 13:02:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Erik van Pienbroek 2008-10-25 15:58:34 UTC
Hi,

In evolution-data-server 2.24.1 the API in the camel component has changed. This change caused the file %{libdir}/libcamel-provider-1.2.so.13 to be renamed to %{libdir}/libcamel-provider-1.2.so.14 and breaking mail notification's evolution plugin along with it.

A rebuild again should be sufficient to solve this problem. However, it is strange this breakage wasn't detected by RPM... It seems like the dependencies of the evolution plugin aren't saved in the RPM file :

$ rpmquery --requires mail-notification-evolution-plugin
mail-notification = 5.4-3.fc10
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  

$ rpmquery --fileprovide mail-notification-evolution-plugin
/usr/lib64/evolution/2.24/plugins/liborg-jylefort-mail-notification.so	P liborg-jylefort-mail-notification.so()(64bit)
/usr/lib64/evolution/2.24/plugins/org-jylefort-mail-notification.eplug	

The evolution plugin itself is linked to several GNOME and evolution components (as they should be):
$ ldd /usr/lib64/evolution/2.24/plugins/liborg-jylefort-mail-notification.so
ldd: waarschuwing: u hebt geen uitvoeringsrechten voor `/usr/lib64/evolution/2.24/plugins/liborg-jylefort-mail-notification.so'
	linux-vdso.so.1 =>  (0x00007fff933ff000)
	libeutil.so.0 => /usr/lib64/evolution/2.24/libeutil.so.0 (0x0000000000317000)
	libgnomeui-2.so.0 => /usr/lib64/libgnomeui-2.so.0 (0x0000000000557000)
	libSM.so.6 => /usr/lib64/libSM.so.6 (0x00000000007f1000)
	libICE.so.6 => /usr/lib64/libICE.so.6 (0x00000000009f9000)
	libcamel-provider-1.2.so.13 => not found
	libbonoboui-2.so.0 => /usr/lib64/libbonoboui-2.so.0 (0x0000000000c14000)
	libgnomevfs-2.so.0 => /usr/lib64/libgnomevfs-2.so.0 (0x0000000000e82000)
	libgnomecanvas-2.so.0 => /usr/lib64/libgnomecanvas-2.so.0 (0x0000000055131000)
        .....

(The warning says the file isn't executable)

The build logs at http://kojipkgs.fedoraproject.org/packages/mail-notification/5.4/3.fc10/data/logs/i386/build.log only show this with regard to the RPM dependency generation:

Processing files: mail-notification-evolution-plugin-5.4-3.fc10
Provides: liborg-jylefort-mail-notification.so
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(VersionedDependencies) <= 3.0.3-1
Requires: rtld(GNU_HASH)
Obsoletes: mail-notification < 3.0-4

The warning provided by 'ldd' about the file not being executable gave me an idea about the possible cause. After adding 'chmod 755 ${RPM_BUILD_ROOT}%{_libdir}/evolution/2.*/plugins/*.so' to the %install phase of the .spec file, RPM started to process the dependencies of the evolution-plugin:

Processing files: mail-notification-evolution-plugin-5.4-3.fc10
Provides: liborg-jylefort-mail-notification.so()(64bit)
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(VersionedDependencies) <= 3.0.3-1
Requires: libICE.so.6()(64bit) libORBit-2.so.0()(64bit) libSM.so.6()(64bit) libart_lgpl_2.so.2()(64bit) libatk-1.0.so.0()(64bit) libbonobo-2.so.0()(64bit) libbonobo-activation.so.4()(64bit) libbonoboui-2.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libcairo.so.2()(64bit) libcamel-1.2.so.14()(64bit) libcamel-provider-1.2.so.14()(64bit) libdbus-1.so.3()(64bit) libdbus-glib-1.so.2()(64bit) libedataserver-1.2.so.11()(64bit) libeutil.so.0()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgconf-2.so.4()(64bit) libgdk-x11-2.0.so.0()(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgmodule-2.0.so.0()(64bit) libgnome-2.so.0()(64bit) libgnomecanvas-2.so.0()(64bit) libgnomeui-2.so.0()(64bit) libgnomevfs-2.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgthread-2.0.so.0()(64bit) libgtk-x11-2.0.so.0()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpopt.so.0()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libsoup-2.4.so.1()(64bit) libsqlite3.so.0()(64bit) libxml2.so.2()(64bit) rtld(GNU_HASH)
Obsoletes: mail-notification < 3.0-4

Could this be an RPM bug where the dependencies of plugins without the executable permission aren't being generated or is the ugly workaround really necessary?

Comment 1 Panu Matilainen 2008-10-26 08:33:22 UTC
Rpm only extracts dependencies from files whose executable bit is set, that's intentional and that's the way it has always been.

Comment 2 Dmitry Butskoy 2008-10-27 13:02:25 UTC
The problem is the new original upstream buildsystem of mail-notification do not set the proper mode for *.so plugin file.

Fixed, see http://kojipkgs.fedoraproject.org/packages/mail-notification/5.4/4.fc10/

Comment 3 Fedora Update System 2008-10-27 13:22:59 UTC
mail-notification-5.4-2.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/mail-notification-5.4-2.fc9

Comment 4 Fedora Update System 2008-11-13 03:36:48 UTC
mail-notification-5.4-2.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.