Message: previous - next
Month: May 2012

Mysterious hard-coding

From: Darrell Anderson <humanreadable@...>
Date: Tue, 29 May 2012 09:47:52 -0700 (PDT)
Resolving bug report 892 includes important patches to reduce potential conflict with KDE4 and to make our own *.desktop files XDG compliant (recently Trinity/TDE was added to the list of registered environments:

Resolving this bug report is important to release R14.

The gritty work of creating patches to update all *.desktop files for each module is complete. Yet there is hard-coding somewhere deep in the tdelibs/tdebase sources that affixes the location of $PREFIX/share/applications/kde. I want to change that location to $PREFIX/share/applications/tde.

During testing, to change the location to $PREFIX/share/applications/tde, I modify the sources on-the-fly of every module by running the following snippet in my master build script:

echo "Fixing applications path in $APP_SOURCES_DIR."
if [ -d $APP_SOURCES_DIR/cmake ];then
  find $APP_SOURCES_DIR/cmake -name TDESetupPaths.cmake -exec sed -i 's|\${SHARE_INSTALL_PREFIX}/applications/kde|\${SHARE_INSTALL_PREFIX}/applications/tde|g' {} \;
if [ -d $APP_SOURCES_DIR/admin ]; then
  find $APP_SOURCES_DIR/admin -type f -exec sed -i 's|{datadir}/applications/kde|{datadir}/applications/tde|g' {} \;
find $APP_SOURCES_DIR -type f -exec sed -i 's|share/applications/kde/|share/applications/tde/|g' {} \;

After I resolve the mysterious hard-coding I'll patch each module with this on-the-fly snippet.

tdelibs/tdecore/kstandarddirs.cpp has this snippet:

if (!strcmp(type, "xdgdata-apps"))
    return "applications/";

Notice there is no "kde" affixed to the path.

Therefore the "kde" subdirectory is being added somewhere else.

The on-the-fly changes work great and all desktop files get installed to $PREFIX/share/applications/tde. Nonetheless, there is breakage. The hard-coding is real because various components stop working in Trinity. For example, opening the Konqueror Settings dialog reveals that most of the configuration options in the icon list are missing. I can temporarily create a sym link from $PREFIX/share/applications/tde to $PREFIX/share/applications/kde and then everything works again --- evidence of hard-coding.

I've looked and looked and I can't find anything. I would be grateful anybody would help me find this mysterious hard-coding.