GNOME Bugzilla – Bug 670695
Introduction of private libgsd.so breaks g-s-d
Last modified: 2012-02-23 18:58:09 UTC
On i586 machines, this is what I have after building a package: /usr/lib/gnome-settings-daemon/ /usr/lib/gnome-settings-daemon/gnome-settings-daemon /usr/lib/gnome-settings-daemon/libgsd.so /usr/lib/gnome-settings-daemon/libgsd.so.0 /usr/lib/gnome-settings-daemon/libgsd.so.0.0.0 [I'll skip the part were libgsd has a library version, which is wrong ;-)) And this is what I have in the .service file: [D-BUS Service] Name=org.gnome.SettingsDaemon Exec=/usr/lib/gnome-settings-daemon And this is what I have in the autostart file: Exec=/usr/lib/gnome-settings-daemon See how both the .service file and the .desktop file reference /usr/lib/gnome-settings-daemon which is now a directory. That's because of how we install libgsd (in $(pkglibdir)).
Relevant bits of "make install": make[3]: Entering directory `/home/abuild/rpmbuild/BUILD/gnome-settings-daemon-3.3.90/gnome-settings-daemon' test -z "/usr/lib/gnome-settings-daemon" || /usr/bin/mkdir -p "/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon" /bin/sh ../libtool --mode=install /usr/bin/install -c libgsd.la '/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon' libtool: install: /usr/bin/install -c .libs/libgsd.so.0.0.0 /home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon/libgsd.so.0.0.0 libtool: install: (cd /home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon && { ln -s -f libgsd.so.0.0.0 libgsd.so.0 || { rm -f libgsd.so.0 && ln -s libgsd.so.0.0.0 libgsd.so.0; }; }) libtool: install: (cd /home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon && { ln -s -f libgsd.so.0.0.0 libgsd.so || { rm -f libgsd.so && ln -s libgsd.so.0.0.0 libgsd.so; }; }) libtool: install: /usr/bin/install -c .libs/libgsd.lai /home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon/libgsd.la libtool: install: warning: remember to run `libtool --finish /usr/lib/gnome-settings-daemon' test -z "/usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon" || /usr/bin/mkdir -p "/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon" /usr/bin/install -c -m 644 gnome-settings-plugin.h '/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon' test -z "/usr/lib" || /usr/bin/mkdir -p "/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib" /bin/sh ../libtool --mode=install /usr/bin/install -c gnome-settings-daemon '/home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib' libtool: install: warning: `libgsd.la' has not been installed in `/usr/lib/gnome-settings-daemon' libtool: install: /usr/bin/install -c .libs/gnome-settings-daemon /home/abuild/rpmbuild/BUILDROOT/gnome-settings-daemon-3.3.90-0.i386/usr/lib/gnome-settings-daemon make[3]: Leaving directory `/home/abuild/rpmbuild/BUILD/gnome-settings-daemon-3.3.90/gnome-settings-daemon'
Sorry, this is unreadable :/ But the short version of the log: mkdir $(DESTDIR)$(pkglibdir) (install libgsd) install -c g-s-d $(DESTDIR)$(libdir)/gnome-settings-daemon And as $(DESTDIR)$(libdir)/gnome-settings-daemon already exists as a directory, it's installed inside the directory.
Created attachment 208288 [details] [review] main: Fix problems when libexecdir == libdir As done in Debian and OpenSUSE
Yes, that's what I had in mind. I checked and it gives the expected result.
Attachment 208288 [details] pushed as bbb7277 - main: Fix problems when libexecdir == libdir
*** Bug 670703 has been marked as a duplicate of this bug. ***