By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 2821 - [openSUSE] yast2-fonts installed causes tdecmshell to be unable to find module 'kde-fonts'
Summary: [openSUSE] yast2-fonts installed causes tdecmshell to be unable to find modul...
Status: NEW
Alias: None
Product: TDE
Classification: Unclassified
Component: other (any) (show other bugs)
Version: R14.0.x [Trinity]
Hardware: Other Linux
: P5 normal
Assignee: Timothy Pearson
URL: https://bugzilla.opensuse.org/show_bu...
Depends on:
Blocks:
 
Reported: 2017-08-26 00:21 CDT by Felix Miata
Modified: 2018-08-18 04:40 CDT (History)
4 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments
Cut & pasted from Konsole running tdecmshell fonts successfully before and unsuccessfully after installing, and successfully after purging, yast2-fonts (2.83 KB, text/plain)
2018-06-03 16:49 CDT, Felix Miata
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Miata 2017-08-26 00:21:38 CDT
Two different openSUSE 42.3 installations (so far) cannot run 'tdecmshell fonts', giving subject message instead. On same installations, 'tdecmshell xserver' works as expected. Package trinity-kcontrol-14.0.4-1.oss423 is installed, but I am unable to ascertain what kcm module does or should contain the fonts module. Trinity Control Center -> Fonts works as expected. On the openSUSE 42.2 installation I checked, 'kcmshell fonts' works as expected.
Comment 1 Felix Miata 2017-08-26 00:24:13 CDT
s/what kcm module does or should/what tde package does or should/
Comment 2 Felix Miata 2018-06-03 07:26:01 CDT
On host gx780, tdecmshell fonts worked.
On host gx760, tdecmshell fonts would not work.
Host gx760 had yast2-fonts installed.
Host gx780 had not yast2-fonts installed.
Adding yast2-fonts to host gx780 caused tdecmshell fonts to fail.
Removing yast2-fonts from both hosts enabled tdecmshell fonts to work on both.

Changing summary form
tdecmshell (tdelibs): WARNING: could not find module 'kde-fonts'
to 
[openSUSE] yast2-fonts installed causes tdecmshell to be unable to find module 'kde-fonts'
Comment 3 Felix Miata 2018-06-03 16:49:08 CDT
Created attachment 2858 [details]
Cut & pasted from Konsole running tdecmshell fonts successfully before and unsuccessfully after installing, and successfully after purging, yast2-fonts

Easily reproducible by installing yast2-fonts on a third host (gx78b).
Comment 4 Felix Miata 2018-06-03 22:19:03 CDT
Occurs also on openSUSE Tumbleweed in addition to 42.3 and 15.0.
Downstream bug filed:
https://bugzilla.opensuse.org/show_bug.cgi?id=1095704
Comment 5 Felix Miata 2018-07-31 01:23:03 CDT
Downstream bug has been wontfixed. Entire closing comment there:
"Problem is upstream at Trinity Desktop."
Comment 6 Ray Vine 2018-08-13 09:58:31 CDT
The clue to this is at https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#desktop-file-id


For a start, there are two desktop files with the same name when yast2-fonts is installed:
/usr/share/applications/YaST2/fonts.desktop
/opt/tde/share/applications/tde/fonts.desktop

And XDG_DATA_DIRS=/opt/tde/share:/usr/local/share:/usr/share

So looking at the 'desktop file ID' of each file using the rules set out in the web page, they are:
YaST2-fonts.desktop
tde-fonts.desktop

The error message is
# tdecmshell fonts
tdecmshell (tdelibs): WARNING: Could not find module 'kde-fonts'.

Precedence should be given to the TDE file. But the 'desktop file ID' comes into play so tdecmshell is now looking for kde-fonts.desktop.

But the TDE fonts.desktop is in directory 
/opt/tde/share/applications/tde/
not
/opt/tde/share/applications/kde/
so no desktop file with the ID kde-fonts.desktop exists.

The prefix is therefore wrong - change it:

sed -i 's|kde-|tde-|' /opt/tde/lib64/libtdeinit_tdecmshell.so

and now with or without yast2-fonts installed
# tdecmshell fonts -> works
And Control Center|Appearance & Themes|Fonts -> works

It does look like a TDE issue.

I haven't installed yast2-fonts on a SuSE system, so can't confirm if that still works.
Comment 7 Ray Vine 2018-08-18 04:40:53 CDT
This patch for tdelibs fixes this bug.

--- tdecmshell/main.cpp
+++ tdecmshell/main.cpp
@@ -106,2 +106,2 @@
-    if ( module.left( 4 ) != "kde-" && service->library().isEmpty() )
-        return locateModule( "kde-" + module );
+    if ( module.left( 4 ) != "tde-" && service->library().isEmpty() )
+        return locateModule( "tde-" + module );


But the failure message is still cryptic from a user's point of view.

With another fonts.desktop file installed and no tde/fonts.desktop:
# tdecmshell fonts
tdecmshell (tdelibs): WARNING: Could not find module 'tde-fonts'.

With no other fonts.desktop file installed and no tde/fonts.desktop:
# tdecmshell fonts
tdecmshell (tdelibs): WARNING: Could not find module 'fonts'.


This additional patch will give an error message with the missing file in either case:
# tdecmshell fonts
tdecmshell (tdelibs): ERROR: Could not find 'tde/fonts.desktop'.

--- tdecmshell/main.cpp
+++ tdecmshell/main.cpp
@@ -98,0 +99,6 @@
+
+    if (path.left(4) == "tde-")
+        path.replace(0,4,"tde/");
+    else
+        path.prepend("tde/");
+
@@ -101 +107 @@
-        kdWarning(780) << "Could not find module '" << module << "'." << endl;
+        kdError(780) << "Could not find '" << path << "'." << endl;