! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
libxfcegui4-4.10.0 is broken when built against libxfce4util-4.11.0 (git) wit...
Status:
RESOLVED: WONTFIX
Product:
Libxfce4util
Component:
General

Comments

Description Samuli Suominen 2014-06-24 15:02:11 CEST
When libxfcegui4-4.10.0 (which is same as git currently) is built against libxfce4ui-4.11.0 (or git) using CFLAGS="-Wimplicit-function-declaration" you see this:

libxfcegui4-4.10.0/libxfcegui4/xfce-exec.c:82:5: warning: implicit declaration of function 'xfce_setenv' [-Wimplicit-function-declaration]

And then, if you try to compile something against that newly built libxfcegui4, using ld.bfd (the default linker of binutils) using LDFLAGS="-Wl,--as-needed" as added by some of Xfce's configure.ac's and distribution build scripts.
Let's take xfce4-wmdock-plugin-0.6.0 for example:

<quote>
libtool: link: x86_64-pc-linux-gnu-gcc -Wall -I.. -pthread -I/usr/include/xfce4 -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/xfce4/libxfce4panel-1.0 -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -I/usr/include/libwnck-1.0 -I/usr/include/startup-notification-1.0 -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -DGETTEXT_PACKAGE=\"xfce4-wmdock-plugin\" -DPACKAGE_LOCALE_DIR=\"/usr/share/locale\" -O2 -pipe -march=native -frecord-gcc-switches -Wimplicit-function-declaration -Wl,-fuse-ld=bfd -o xfce4-wmdock-plugin xfce4_wmdock_plugin-catchwindow.o xfce4_wmdock_plugin-debug.o xfce4_wmdock_plugin-dnd.o xfce4_wmdock_plugin-dockapp.o xfce4_wmdock_plugin-misc.o xfce4_wmdock_plugin-props.o xfce4_wmdock_plugin-rcfile.o xfce4_wmdock_plugin-wmdock.o -Wl,--export-dynamic -pthread  -Wl,--as-needed -lxfce4panel-1.0 -lgmodule-2.0 -lwnck-1 -lxfcegui4 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lfontconfig -lfreetype -lxfce4util -lglib-2.0 -lX11 -lm -pthread
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../lib64/libxfcegui4.so: undefined reference to `xfce_setenv'
collect2: error: ld returned 1 exit status
</quote>

The compilation is aborted because:

# nm -D /usr/lib/libxfcegui4.so.4.3.0 |grep setenv
                 U xfce_setenv

"U" as in undefined!

So it seems libxfcegui4 git should be fixed for libxfce4util git. I know libxfcegui4 is a dead library, but we still have dozen or more plugins that are unported.

In Gentoo, all of these are at their latest version, and still use libxfcegui4:

http://qa-reports.gentoo.org/output/genrdeps/rindex/xfce-base/libxfcegui4

xfce-extra/xfce4-cellmodem-plugin-0.0.5
xfce-extra/xfce4-dict-0.6.0
xfce-extra/xfce4-gvfs-mount-0.0.4
xfce-extra/xfce4-linelight-plugin-0.1.7
xfce-extra/xfce4-messenger-plugin-0.1.0
xfce-extra/xfce4-modemlights-plugin-0.1.3.99
xfce-extra/xfce4-notes-plugin-1.7.7
xfce-extra/xfce4-playercontrol-plugin-0.3.0
xfce-extra/xfce4-quicklauncher-plugin-1.9.4-r1
xfce-extra/xfce4-radio-plugin-0.5.1
xfce-extra/xfce4-verve-plugin-1.0.0
xfce-extra/xfce4-wmdock-plugin-0.6.0
xfce-extra/xfswitch-plugin-0.0.1-r1

So, would it be possible to get libxfcegui4 fixed in git? I don't care if it's released or not, but distributions will be asking for it...
Gentoo is at pretty good situation wrt porting from gui4 to 4ui, some other distributions have double that many unported ones

Thanks!
Comment 1 Samuli Suominen 2014-06-24 15:03:02 CEST
(In reply to Samuli Suominen from comment #0)
> When libxfcegui4-4.10.0 (which is same as git currently) is built against
> libxfce4ui-4.11.0

Typing error here. I meant libxfce4util, of course.
Comment 2 Samuli Suominen 2014-06-24 15:03:53 CEST
Perhaps the xfce_setenv that used to be in libxfce4util, should now be moved to libxfcegui4 for compability reasons?
Comment 3 Samuli Suominen 2014-06-24 15:07:43 CEST
These bugs were filed because of this:

https://bugs.gentoo.org/show_bug.cgi?id=514330
https://bugs.gentoo.org/show_bug.cgi?id=514520
https://bugs.gentoo.org/show_bug.cgi?id=514868
https://bugs.gentoo.org/show_bug.cgi?id=513568

They contain complete build.logs of failing xfswitch-plugin, xfce4-gvfs-mount, xfce4-wmdock-plugin, if you need them. Otherwise they don't have more info than what I have said here already.
Comment 4 Samuli Suominen 2014-06-24 15:08:23 CEST
And sorry for using the libxfce4util bugzilla component. Looks like the libxfcegui4 component has been removed already.
Comment 5 Samuli Suominen 2014-06-24 15:35:37 CEST
Turns out it simple as this:

--- libxfcegui4/xfce-exec.c
+++ libxfcegui4/xfce-exec.c
@@ -79,7 +79,7 @@
 #ifndef G_OS_WIN32
     gchar *dpyname = user_data;
     
-    xfce_setenv ("DISPLAY", dpyname, TRUE);
+    g_setenv ("DISPLAY", dpyname, TRUE);
 #endif
 }

Please review & commit to git
Comment 6 Samuli Suominen 2014-06-24 15:38:43 CEST
Created attachment 5532 
Fix compability with libxfce4util-4.11+
Comment 7 Jannis Pohlmann editbugs 2014-07-27 16:09:56 CEST
libxfcegui4 has been deprecated since 4.8 and was moved to the repository archive ages ago. If you want or need to continue supporting it, you'll have to ship the patch in your distro. We're no longer pushing changes to libxfcegui4, sorry.

Bug #10974

Reported by:
Samuli Suominen
Reported on: 2014-06-24
Last modified on: 2014-07-27

People

Assignee:
Xfce Bug Triage
CC List:
1 user

Version

Version:
Unspecified

Attachments

Fix compability with libxfce4util-4.11+ (311 bytes, patch)
2014-06-24 15:38 CEST , Samuli Suominen
no flags

Additional information