diff options
Diffstat (limited to 'opensuse/core/tdebase/runupdater.patch')
-rw-r--r-- | opensuse/core/tdebase/runupdater.patch | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/opensuse/core/tdebase/runupdater.patch b/opensuse/core/tdebase/runupdater.patch new file mode 100644 index 000000000..3dcc4c550 --- /dev/null +++ b/opensuse/core/tdebase/runupdater.patch @@ -0,0 +1,133 @@ +Index: runupdater/runupdater.desktop +=================================================================== +--- /dev/null ++++ runupdater/runupdater.desktop +@@ -0,0 +1,9 @@ ++[Desktop Entry] ++Type=Application ++Exec=runupdater ++Terminal=false ++Name=Run Updater Tool ++Icon=www ++ ++X-KDE-StartupNotify=false ++OnlyShowIn=KDE; +Index: runupdater/runupdater.cpp +=================================================================== +--- /dev/null ++++ runupdater/runupdater.cpp +@@ -0,0 +1,96 @@ ++/* ++ Run either opensuseupdater or zen-updater but not both. ++ For opensuseupdater its autostart condition is checked, for zen-updater ++ it's checked whether its autostart file is enabled. ++*/ ++ ++#include <kapplication.h> ++#include <kconfig.h> ++#include <ksimpleconfig.h> ++#include <kstandarddirs.h> ++ ++static bool disabledOSU() ++ { ++ KConfig osu( "opensuseupdaterrc", true ); ++ osu.setGroup( "General" ); ++// fprintf( stderr, "OSU:%d\n", osu.readBoolEntry ("Autostart", true )); ++ return !osu.readBoolEntry( "Autostart", true ); ++ } ++ ++static bool availableOSU() ++ { ++ return !KStandardDirs::findExe( "opensuseupdater" ).isEmpty(); ++ } ++ ++static bool runOSU() ++ { ++ return KApplication::kdeinitExec( "opensuseupdater", QStringList(), NULL, NULL, "0" ) == 0; ++ } ++ ++static bool disabledZU() ++ { ++ KConfig zu( "zen-updater-auto.desktop", true, false, "xdgconf-autostart" ); ++ zu.setGroup( "Desktop Entry" ); ++// fprintf( stderr, "ZU %d\n", zu.readBoolEntry( "Hidden", false ) ); ++ return zu.readBoolEntry( "Hidden", false ); ++ } ++ ++static bool availableZU() ++ { ++ return !KStandardDirs::findExe( "zen-updater" ).isEmpty(); ++ } ++ ++static bool runZU() ++ { ++ return KApplication::kdeinitExec( "zen-updater", QStringList(), NULL, NULL, "0" ) == 0; ++ } ++ ++extern "C" ++int kdemain() ++ { ++ KInstance inst( "runupdater" ); ++ // KSimpleConfig should parse this one just fine, with entries in the default group ++ KSimpleConfig sysconfig( "/etc/sysconfig/sw_management", true ); ++ QString preferred = sysconfig.readEntry( "PREFERRED_SW_MANAGER_STACK" ); ++// fprintf( stderr, "SC1: %s\n", preferred.latin1()); ++ if( preferred.startsWith( "\"" ) && preferred.endsWith( "\"" )) // strip "" ++ preferred = preferred.mid( 1, preferred.length() - 2 ); ++// fprintf( stderr, "SC2: %s\n", preferred.latin1()); ++ if( preferred.lower() == "opensuse" ) ++ { ++ // opensuseupdater preferred - it's it's available, run it if it's enabled, ++ // try zen-updater only if opensuseupdater is not available at all ++ if( availableOSU()) ++ { ++ if( !disabledOSU()) ++ return runOSU(); ++ return 0; ++ } ++ else if( availableZU() && !disabledZU()) ++ return runZU(); ++ return 0; ++ } ++ else if( preferred.lower() == "zlm" ) ++ { ++ // similar like above, just the other way around ++ if( availableZU()) ++ { ++ if( !disabledZU()) ++ return runZU(); ++ return 0; ++ } ++ else if( availableOSU() && !disabledOSU()) ++ return runOSU(); ++ return 0; ++ } ++ else ++ { ++ // prefer opensuseupdater, but try to run zen-updater if opensuseupdater is not run ++ // the difference is that zen-updater is still run if opensuseupdater is disabled ++ if( availableOSU() && !disabledOSU() && runOSU()) ++ return 0; ++ if( availableZU() && !disabledZU() && runZU()) ++ return 0; ++ return 0; ++ } ++ } +Index: runupdater/Makefile.am +=================================================================== +--- /dev/null ++++ runupdater/Makefile.am +@@ -0,0 +1,13 @@ ++INCLUDES = $(all_includes) ++ ++bin_PROGRAMS = ++lib_LTLIBRARIES = ++kdeinit_LTLIBRARIES = runupdater.la ++ ++runupdater_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) ++runupdater_la_LIBADD = $(LIB_KDECORE) ++ ++runupdater_la_SOURCES = runupdater.cpp ++ ++autostart_DATA = runupdater.desktop ++autostartdir = $(datadir)/autostart |