SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have xfdesktop set a new desktop background every 5 minutes, and it complains with the following message in the xsession error log (~/.local/share/sddm/xorg-session.log)"
Code:
** (xfdesktop:3062): WARNING **: 21:54:08.828: Failed to set the background '/home/user/images/image111.jpg': GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.DisplayManager.AccountsService”
I tried to look into what is going on with the 'accountsservice' package. From what I see, 'accountsservice' is a dbus service that both xfce and plasma automatically activate as needed (there could be other things that use it, I didnt look for too long). Plasma starts and uses the service when modifying 'users' in the system settings. Xfce appears to start the daemon from login.
You can see it running on the system dbus after starting xfce:
It appears to be running and working as intended to me.
I also see that same warning as you in '~/.local/share/sddm/xorg-session.log' whenever I change the background in xfce's settings. I don't know what provides this 'org.freedesktop.DisplayManager.AccountsService' dbus interface but it doesnt seem to be part of 'accountsservice'.
The background still changes properly so it seems like a harmless warning to me.
I also looked into this a bit when the error message started showing up in my ~/.xsession-errors file. I get the error even though my background is set to a solid color - no background file (wallpaper) at all.
As far as I can tell, using dbus-monitor, xfdesktop is successfully contacting AccountsService via D-bus, but the attempt to set the BackgroundFile property is rejected.
I was curious enough to do a little detective work, and here is what I found.
The response on your bug report at https://gitlab.xfce.org/xfce/xfdesktop/-/issues/176 seems to be going in the wrong direction. It isn't that AccountsService is not available. The feature they are using is not available.
(1) From the xfdesktop ChangeLog on Oct 7, 2018:
Quote:
Sync user's wallpaper selection to AccountsService
This used to be possible only within Ubuntu in the past, but now the feature is also present in upstream AccountsService.
(2) Bug requests asking for the Ubuntu feature to be added to AccountsService:
Reading the bug reports, it doesn't look like the feature did ever get added. If so, then xfdesktop's attempt to set background file would still only work on the Ubuntu-patched AccountsService, and perhaps the developers of xfdesktop don't realize that.
Depends on whether we consider the problem to be a strange error message being logged, or some missing functionality. I don't think we are missing any functionality. Why does AccountsService need to know what wallpaper you are using? Is it for a login manager like LightDM to show it at login time? I can't see that being a good feature anyway.
If the only problem is the error message, then I say xfdesktop should just ignore the error. I would have suggested toning it down to something like "unable to tell Account Service about your wallpaper", but you said you have a frequent automatic change, which would still get too many messages.
My opinion: xfdesktop should just silently ignore any error telling Accounts Service about wallpaper changes.
Now that you have written about it, it seems to me that this is a security vulnerability, actually. A wallpaper may be a pure decoration, but may be not, if it is used to display some useful information, such as server status. Forwarding this information to the login manager is a security issue.
On the other hand I am vehemently opposed to the idea of silently ignoring failures. In my experience this usually leads to unexpected catastrophic results.
I think that forwarding a the background to the login manager should be a runtime option in the xfdesktop's properties. There _may_ be cases when one user is fine with sharing this information, and another one is not.
A previous search for the org.freedesktop.DisplayManager.AccountsService file only found lightdm. which is not provided. Xfce itself doesn't need AccountsService. Only plasma5 seems to want it.
So the 'org.freedesktop.DisplayManager' dbus service is provided by display managers like 'lightdm' and 'sddm', but only 'lightdm' seems to have implemented the 'AccountsService' extension. Found this commit for 'lightdm' which seems to back what ljb643 said in post 3:
How about posting a recommendation, or even a patch, at https://gitlab.xfce.org/xfce/xfdesktop/-/issues/176 to completely remove the feature whereby xfdesktop tells AccountsService every time the background changes? Problem solved - no error message, no security issue. Ubuntu will presumably have to go back to patching the code to add their feature, but they like doing stuff like that, don't they?
I've done a patch that adds a compile-time check. Maybe it will be accepted?
Code:
diff --git a/configure.ac.in b/configure.ac.in
index 6d36396a..bb5e14f2 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -106,6 +106,21 @@ else
fi
AM_CONDITIONAL([ENABLE_DESKTOP_ICONS], [test "x$enable_desktop_icons" = "xyes"])
+dnl do we want desktop icons at all?
+AC_ARG_ENABLE([ubuntu-accountsservice-integration],
+ [AS_HELP_STRING([--disable-ubuntu-accountsservice-integration],
+ [Do not compile in support for ubuntu accountsservice integration (default=enabled)])],
+ [ac_cv_enable_ubuntu_accountsservice_integration=$enableval],
+ [ac_cv_enableubuntu_accountsservice_integration=yes])
+if test "x$ac_cv_enable_ubuntu_accountsservice_integration" = "xno"; then
+ enable_ubuntu_accountsservice_integration="no"
+else
+ enable_ubuntu_accountsservice_integration="yes"
+ AC_DEFINE([ENABLE_UBUNTU_ACCOUNTSSERVICE_INTEGRATION], [1], [Set if ubuntu accountsservice integration support is enabled])
+fi
+AM_CONDITIONAL([ENABLE_UBUNTU_ACCOUNTSSERVICE_INTEGRATION], [test "x$enable_ubuntu_accountsservice_integration" = "xyes"])
+
+
dnl if we want desktop icons, do we also want file icons?
AC_ARG_ENABLE([file-icons],
[AS_HELP_STRING([--disable-file-icons],
@@ -203,6 +218,7 @@ AC_OUTPUT
echo
echo "Build Configuration:"
echo "* Build desktop menu module: $build_desktop_menu"
+echo "* Build support for ubuntu accountsservice integration: $enable_ubuntu_accountsservice_integration"
echo "* Build support for desktop icons: $enable_desktop_icons"
echo " Include support for file/launcher icons: $enable_file_icons"
if test x"$LIBNOTIFY_FOUND" = x"yes"; then
diff --git a/src/xfce-desktop.c b/src/xfce-desktop.c
index e00c9010..d0795f7e 100644
--- a/src/xfce-desktop.c
+++ b/src/xfce-desktop.c
@@ -483,6 +483,7 @@ backdrop_changed_cb(XfceBackdrop *backdrop, gpointer user_data)
}
if(monitor == -1)
return;
+#ifdef ENABLE_UBUNTU_ACCOUNTSSERVICE_INTEGRATION
/* notify Accountsservice of the new bg (only for monitor0) */
if(monitor == 0)
{
@@ -497,6 +498,7 @@ backdrop_changed_cb(XfceBackdrop *backdrop, gpointer user_data)
g_free(new_filename);
}
}
+#endif
#ifdef G_ENABLE_DEBUG
XF_DEBUG("backdrop changed for workspace %d, monitor %d (%s)", current_workspace, monitor,
It won't apply to Slackware as-is, because it is aimed at configure.ac.in, not configure.ac, but the files are almost the same, so it should not matter. Also, and autoreconf -i is needed.
OK the missing dbus service files are needed. I stumbled across this while playing with Xubuntu and their lightdm login session manager.
The following is going to guide you into creating a Slackware package to fix this. This fix also fixes the error messages about changing wallpaper and login pictures.
Save that as a bash script, run it to create the folders.
Step-2 Create the files
( cd usr/share/accountsservice/interfaces ; rm -rf org.freedesktop.DisplayManager.AccountsService.xml )
( cd usr/share/accountsservice/interfaces ; ln -sf ../../dbus-1/interfaces/org.freedesktop.DisplayManager.AccountsService.xml org.freedesktop.DisplayManager.AccountsService.xml )
save that as doinst.sh in the accountsservice-display-fix/install folder
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------|
accountsservice-display-fix: This accountsservice-display-fix package was created
accountsservice-display-fix:
accountsservice-display-fix: to address the missing dbus service files that give us the
accountsservice-display-fix: org.freedesktop.DisplayManager.AccountsService
accountsservice-display-fix: that works with the accountsservice application.
accountsservice-display-fix:
accountsservice-display-fix: This was created for those who do not install KDE on
accountsservice-display-fix: Slackware. KDE most likely has it's own version of
accountsservice-display-fix: org.freedesktop.DisplayManager.AccountsService
accountsservice-display-fix: This package gives us xfce users the functionality needed
accountsservice-display-fix:
save that as slack-desc in the accountsservice-display-fix/install folder
save that as org.freedesktop.DisplayManager.AccountsService.xml in the accountsservice-display-fix/usr/share/dbus-1/interfaces folder
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Only root can own the service -->
<policy user="root">
<allow own="org.freedesktop.DisplayManager"/>
<allow send_destination="org.freedesktop.DisplayManager"
send_interface="org.freedesktop.DisplayManager"
send_member="AddSeat"/>
</policy>
save that as org.freedesktop.DisplayManager.conf in the accountsservice-display-fix/usr/share/dbus-1/system.d folder
<?xml version="1.0" encoding="UTF-8"?>
<policyconfig>
<action id="org.freedesktop.DisplayManager.AccountsService.ModifyOwn">
<description>Set properties of own user</description>
<description xml:lang="zh_TW">設定使用者自己的屬性</description>
<message>Authentication is required to set one's own greeter properties.</message>
<message xml:lang="zh_TW">設定某人自己的 greeter 屬性需要身份核對。</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
<action id="org.freedesktop.DisplayManager.AccountsService.ReadAny">
<description>Set properties of any user</description>
<description xml:lang="zh_TW">設定任何使用者的屬性</description>
<message>Authentication is required to get another user's greeter properties.</message>
<message xml:lang="zh_TW">取得其他使用者的 greeter 屬性需要身份核對。</message>
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
<action id="org.freedesktop.DisplayManager.AccountsService.ModifyAny">
<description>Set properties of any user</description>
<description xml:lang="zh_TW">設定任何使用者的屬性</description>
<message>Authentication is required to set another user's greeter properties.</message>
<message xml:lang="zh_TW">設定其他使用者的 greeter 屬性需要身份核對。</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>no</allow_active>
</defaults>
</action>
</policyconfig>
save that as org.freedesktop.DisplayManager.AccountsService.policy in the accountsservice-display-fix/usr/share/polkit-1/actions folder
Step-3 create the Slackware package
Double check to make sure all the folders and files are created and located where they should be run in console tree accountsservice-display-fix
that should show you the same folder structure as above.
Now cd into the accountsservice-display-fix folder and makepkg /tmp/accountsservice-display-fix.tgz
then run installpkg /tmp/accountsservice-display-fix.tgz reboot the computer and voila it's fixed.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.