diff -Nru kde4libs-4.0.3/debian/changelog kde4libs-4.0.3/debian/changelog --- kde4libs-4.0.3/debian/changelog 2008-05-17 12:03:12.000000000 -0400 +++ kde4libs-4.0.3/debian/changelog 2008-05-17 12:03:16.000000000 -0400 @@ -1,3 +1,11 @@ +kde4libs (4:4.0.3-0ubuntu5.2) hardy-proposed; urgency=low + + * Modified debian/patches/kubuntu_01_kde3_menu_applications.diff to + launch KDE 3 games correctly, since they are installed to /usr/games + and not /usr/bin (LP: #218138) + + -- Yuriy Kozlov Sat, 17 May 2008 11:51:47 -0400 + kde4libs (4:4.0.3-0ubuntu5.1) hardy-security; urgency=low * SECURITY UPDATE: KHTML's PNG loader can be tricked into diff -Nru kde4libs-4.0.3/debian/patches/kubuntu_01_kde3_menu_applications.diff kde4libs-4.0.3/debian/patches/kubuntu_01_kde3_menu_applications.diff --- kde4libs-4.0.3/debian/patches/kubuntu_01_kde3_menu_applications.diff 2008-05-17 12:03:12.000000000 -0400 +++ kde4libs-4.0.3/debian/patches/kubuntu_01_kde3_menu_applications.diff 2008-05-17 12:03:16.000000000 -0400 @@ -1,8 +1,8 @@ -Index: kdecore/services/kservice.cpp +Index: kde4libs-4.0.3/kdecore/services/kservice.cpp =================================================================== ---- kdelibs/kdecore/services/kservice.cpp (revision 741745) -+++ kdelibs/kdecore/services/kservice.cpp (working copy) -@@ -46,6 +46,7 @@ +--- kde4libs-4.0.3.orig/kdecore/services/kservice.cpp 2008-03-27 16:33:34.000000000 -0400 ++++ kde4libs-4.0.3/kdecore/services/kservice.cpp 2008-05-17 11:51:09.000000000 -0400 +@@ -57,6 +57,7 @@ { const QString entryPath = q->entryPath(); bool absPath = !QDir::isRelativePath(entryPath); @@ -10,7 +10,7 @@ // TODO: it makes sense to have a KConstConfigGroup I guess const KConfigGroup desktopGroup = const_cast(config)->desktopGroup(); -@@ -73,6 +75,8 @@ +@@ -84,6 +85,8 @@ if (i != -1) m_strName = m_strName.left(i); } @@ -19,12 +19,20 @@ m_strType = config->readType(); entryMap.remove("Type"); -@@ -96,6 +100,18 @@ +@@ -107,6 +110,26 @@ // NOT readPathEntry, it is not XDG-compliant. Path entries written by // KDE4 will be still treated as such, though. m_strExec = desktopGroup.readEntry( "Exec", QString() ); -+ if (kde3application && !m_strExec.startsWith("/")) -+ m_strExec = "/usr/bin/"+m_strExec; ++ categories = desktopGroup.readXdgListEntry("Categories"); ++ entryMap.remove("Categories"); ++ if (kde3application && !m_strExec.startsWith("/")) { ++ if (categories.contains("Game")) { ++ m_strExec = "/usr/games/" + m_strExec; ++ } ++ else { ++ m_strExec = "/usr/bin/"+m_strExec; ++ } ++ } + else if (desktopGroup.readEntry("X-KDE-SubstituteUID"), false) { + int space = m_strExec.indexOf(" "); + if (space==-1) @@ -38,7 +46,16 @@ entryMap.remove("Exec"); if ( m_strType == "Application" ) { -@@ -205,7 +205,8 @@ +@@ -181,8 +204,6 @@ + entryMap.remove("Keywords"); + m_lstKeywords += desktopGroup.readEntry("X-KDE-Keywords", QStringList()); + entryMap.remove("X-KDE-Keywords"); +- categories = desktopGroup.readXdgListEntry("Categories"); +- entryMap.remove("Categories"); + m_strLibrary = desktopGroup.readEntry( "X-KDE-Library" ); + entryMap.remove("X-KDE-Library"); + +@@ -190,7 +211,8 @@ entryMap.remove("ServiceTypes"); lstServiceTypes += desktopGroup.readEntry( "X-KDE-ServiceTypes", QStringList() ); entryMap.remove("X-KDE-ServiceTypes"); @@ -48,7 +65,7 @@ entryMap.remove("MimeType"); if ( m_strType == "Application" && !lstServiceTypes.contains("Application") ) -@@ -208,6 +225,8 @@ +@@ -246,6 +268,8 @@ m_DBUSStartusType = KService::DBusNone; m_strDesktopEntryName = _name.toLower(); @@ -57,7 +74,7 @@ m_bAllowAsDefault = desktopGroup.readEntry("AllowDefault", true); entryMap.remove("AllowDefault"); -@@ -221,7 +240,9 @@ +@@ -256,7 +280,9 @@ // qDebug("Path = %s", entryPath.toLatin1().constData()); QMap::ConstIterator it = entryMap.begin(); for( ; it != entryMap.end();++it) {