diff options
19 files changed, 3332 insertions, 308 deletions
diff --git a/redhat/applications/koffice/trinity-koffice.spec b/redhat/applications/koffice/trinity-koffice.spec index 63f51b23b..a7905a05b 100644 --- a/redhat/applications/koffice/trinity-koffice.spec +++ b/redhat/applications/koffice/trinity-koffice.spec @@ -437,6 +437,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &> /dev/null || : gtk-update-icon-cache %{_datadir}/icons/locolor &> /dev/null || : update-desktop-database -q &> /dev/null ||: +%post karbon -p /sbin/ldconfig + +%postun karbon -p /sbin/ldconfig + %post kword -p /sbin/ldconfig %postun kword -p /sbin/ldconfig diff --git a/redhat/kdelibs/kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch b/redhat/kdelibs/kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch new file mode 100644 index 000000000..b6f0ea0cb --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch @@ -0,0 +1,139 @@ +commit 3c75231601fb35f0c91022abeee5117c81f70a62 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1339293731 -0500 + + Add dynamic label support to kpassworddialog + +diff --git a/kdeui/kpassdlg.cpp b/kdeui/kpassdlg.cpp +index a9625b8..489e14d 100644 +--- ./kdeui/kpassdlg.cpp.orig 2011-08-11 04:30:26.000000000 +0200 ++++ ./kdeui/kpassdlg.cpp 2012-06-19 20:10:16.766136524 +0200 +@@ -32,6 +32,7 @@ + #include <tqhbox.h> + #include <tqwhatsthis.h> + #include <tqptrdict.h> ++#include <tqtimer.h> + + #include <kglobal.h> + #include <kdebug.h> +@@ -305,7 +306,7 @@ + KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, + TQWidget *parent, const char *name) + : KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn, +- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) ++ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) + { + d->iconName = "password"; + init(); +@@ -314,7 +315,7 @@ + KPasswordDialog::KPasswordDialog(Types type, bool enableKeep, int extraBttn, const TQString& icon, + TQWidget *parent, const char *name ) + : KDialogBase(parent, name, true, "", Ok|Cancel|extraBttn, +- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) ++ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) + { + if ( icon.stripWhiteSpace().isEmpty() ) + d->iconName = "password"; +@@ -326,7 +327,7 @@ + KPasswordDialog::KPasswordDialog(int type, TQString prompt, bool enableKeep, + int extraBttn) + : KDialogBase(0L, "Password Dialog", true, "", Ok|Cancel|extraBttn, +- Ok, true), m_Keep(enableKeep? 1 : 0), m_Type(type), d(new KPasswordDialogPrivate) ++ Ok, true), m_Keep(enableKeep? 1 : 0), m_keepWarnLbl(0), m_Type(type), d(new KPasswordDialogPrivate) + { + d->iconName = "password"; + init(); +@@ -393,12 +394,20 @@ + m_pGrid->setRowStretch(8, 12); + TQCheckBox* const cb = new TQCheckBox(i18n("&Keep password"), m_pMain); + cb->setFixedSize(cb->tqsizeHint()); +- if (m_Keep > 1) ++ m_keepWarnLbl = new TQLabel(m_pMain); ++ m_keepWarnLbl->setAlignment(AlignLeft|AlignVCenter|WordBreak); ++ if (m_Keep > 1) { + cb->setChecked(true); +- else ++ m_keepWarnLbl->show(); ++ } ++ else { + m_Keep = 0; ++ m_keepWarnLbl->hide(); ++ } + connect(cb, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotKeep(bool))); + m_pGrid->addWidget(cb, 9, 2, (TQ_Alignment)(AlignLeft|AlignVCenter)); ++// m_pGrid->addWidget(m_keepWarnLbl, 13, 2, (TQ_Alignment)(AlignLeft|AlignVCenter)); ++ m_pGrid->addMultiCellWidget(m_keepWarnLbl, 13, 13, 0, 3); + } else if (m_Type == NewPassword) { + m_pGrid->addRowSpacing(8, 10); + lbl = new TQLabel(m_pMain); +@@ -475,6 +484,13 @@ + m_pHelpLbl->setFixedSize(275, m_pHelpLbl->heightForWidth(275)); + } + ++void KPasswordDialog::setKeepWarning(TQString warn) ++{ ++ if (m_keepWarnLbl) { ++ m_keepWarnLbl->setText(warn); ++ } ++} ++ + + TQString KPasswordDialog::prompt() const + +@@ -550,9 +566,24 @@ + + void KPasswordDialog::slotKeep(bool keep) + { ++ if (m_keepWarnLbl->text() != "") { ++ if (keep) { ++ m_keepWarnLbl->show(); ++ } ++ else { ++ m_keepWarnLbl->hide(); ++ } ++ TQTimer::singleShot(0, this, SLOT(slotLayout())); ++ } ++ + m_Keep = keep; + } + ++void KPasswordDialog::slotLayout() ++{ ++ resize(sizeHint()); ++} ++ + + // static . antlarr: KDE 4: Make it const TQString & prompt + int KPasswordDialog::getPassword(TQCString &password, TQString prompt, +diff --git a/kdeui/kpassdlg.h b/kdeui/kpassdlg.h +index de83bb3..2d124b0 100644 +--- a/kdeui/kpassdlg.h ++++ b/kdeui/kpassdlg.h +@@ -246,6 +246,11 @@ public: + TQString prompt() const; + + /** ++ * Sets the text to be dynamically displayed when the keep checkbox is checked ++ */ ++ void setKeepWarning(TQString warn); ++ ++ /** + * Adds a line of information to the dialog. + */ + void addLine(TQString key, TQString value); +@@ -380,6 +385,7 @@ protected slots: + void slotOk(); + void slotCancel(); + void slotKeep(bool); ++ void slotLayout(); + + protected: + +@@ -399,6 +405,7 @@ private: + + int m_Keep, m_Type, m_Row; + TQLabel *m_pHelpLbl; ++ TQLabel *m_keepWarnLbl; + TQGridLayout *m_pGrid; + TQWidget *m_pMain; + KPasswordEdit *m_pEdit, *m_pEdit2; diff --git a/redhat/kdelibs/kdelibs-3.5.13-add_readonly_to_tde_application.patch b/redhat/kdelibs/kdelibs-3.5.13-add_readonly_to_tde_application.patch new file mode 100644 index 000000000..dcdbd4e99 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-add_readonly_to_tde_application.patch @@ -0,0 +1,248 @@ +commit d3a9d56143cf668c7d29b26a324a424d02036371 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1337109016 -0500 + + Add the ability to force read-only configuration file access in a TDE application + Force kde-config to use read-only access + This closes Bug 293 + +diff --git a/kdecore/kconfigbackend.cpp b/kdecore/kconfigbackend.cpp +index 9ee9dd6..4ad0e5f 100644 +--- a/kdecore/kconfigbackend.cpp ++++ b/kdecore/kconfigbackend.cpp +@@ -247,17 +247,22 @@ void KConfigBackEnd::changeFileName(const TQString &_fileName, + mfileName = _fileName; + resType = _resType; + useKDEGlobals = _useKDEGlobals; +- if (mfileName.isEmpty()) ++ if (mfileName.isEmpty()) { + mLocalFileName = TQString::null; +- else if (!TQDir::isRelativePath(mfileName)) ++ } ++ else if (!TQDir::isRelativePath(mfileName)) { + mLocalFileName = mfileName; +- else +- mLocalFileName = KGlobal::dirs()->saveLocation(resType) + mfileName; ++ } ++ else { ++ mLocalFileName = KGlobal::dirs()->saveLocation(resType, TQString(), false) + mfileName; ++ } + +- if (useKDEGlobals) ++ if (useKDEGlobals) { + mGlobalFileName = KGlobal::dirs()->saveLocation("config", TQString(), false) + TQString::fromLatin1("kdeglobals"); +- else ++ } ++ else { + mGlobalFileName = TQString::null; ++ } + + d->localLastModified = TQDateTime(); + d->localLastSize = 0; +diff --git a/kdecore/kconfigbase.cpp b/kdecore/kconfigbase.cpp +index 9ad6600..c5c0a4e 100644 +--- a/kdecore/kconfigbase.cpp ++++ b/kdecore/kconfigbase.cpp +@@ -1139,16 +1139,18 @@ static TQString translatePath( TQString path ) + + // return original path, if it refers to another type of URL (e.g. http:/), or + // if the path is already relative to another directory +- if (!startsWithFile && path[0] != '/' || +- startsWithFile && path[5] != '/') ++ if (((!startsWithFile) && (path[0] != '/')) || (startsWithFile && (path[5] != '/'))) { + return path; ++ } + +- if (startsWithFile) ++ if (startsWithFile) { + path.remove(0,5); // strip leading "file:/" off the string ++ } + + // keep only one single '/' at the beginning - needed for cleanHomeDirPath() +- while (path[0] == '/' && path[1] == '/') ++ while (path[0] == '/' && path[1] == '/') { + path.remove(0,1); ++ } + + // we can not use KGlobal::dirs()->relativeLocation("home", path) here, + // since it would not recognize paths without a trailing '/'. +diff --git a/kdecore/kinstance.cpp b/kdecore/kinstance.cpp +index fe0a515..5b3aa86 100644 +--- ./kdecore/kinstance.cpp.orig 2011-08-11 04:30:15.000000000 +0200 ++++ ./kdecore/kinstance.cpp 2012-06-19 21:14:21.569741870 +0200 +@@ -70,7 +70,7 @@ + : _dirs (0L), + _config (0L), + _iconLoader (0L), +- _name( name ), _aboutData( new KAboutData( name, "", 0 ) ) ++ _name( name ), _aboutData( new KAboutData( name, "", 0 ) ), m_configReadOnly(false) + { + DEBUG_ADD + Q_ASSERT(!name.isEmpty()); +@@ -88,7 +88,7 @@ + : _dirs (0L), + _config (0L), + _iconLoader (0L), +- _name( aboutData->appName() ), _aboutData( aboutData ) ++ _name( aboutData->appName() ), _aboutData( aboutData ), m_configReadOnly(false) + { + DEBUG_ADD + Q_ASSERT(!_name.isEmpty()); +@@ -107,7 +107,7 @@ + : _dirs ( src->_dirs ), + _config ( src->_config ), + _iconLoader ( src->_iconLoader ), +- _name( src->_name ), _aboutData( src->_aboutData ) ++ _name( src->_name ), _aboutData( src->_aboutData ), m_configReadOnly(false) + { + DEBUG_ADD + Q_ASSERT(!_name.isEmpty()); +@@ -174,6 +174,11 @@ + extern bool kde_kiosk_exception; + extern bool kde_kiosk_admin; + ++void KInstance::setConfigReadOnly(bool ro) ++{ ++ m_configReadOnly = ro; ++} ++ + KConfig *KInstance::config() const + { + DEBUG_CHECK_ALIVE +@@ -198,10 +203,12 @@ + + if ( d->sharedConfig == 0 ) + { +- if ( !_name.isEmpty() ) +- d->sharedConfig = KSharedConfig::openConfig( _name + "rc"); +- else ++ if ( !_name.isEmpty() ) { ++ d->sharedConfig = KSharedConfig::openConfig( _name + "rc", m_configReadOnly ); ++ } ++ else { + d->sharedConfig = KSharedConfig::openConfig( TQString::null ); ++ } + } + + // Check if we are excempt from kiosk restrictions +@@ -211,7 +218,7 @@ + d->sharedConfig = 0; + return config(); // Reread... + } +- ++ + _config = d->sharedConfig; + if (_dirs) + if (_dirs->addCustomized(_config)) +diff --git a/kdecore/kinstance.h b/kdecore/kinstance.h +index 75cc4b4..444a2d8 100644 +--- a/kdecore/kinstance.h ++++ b/kdecore/kinstance.h +@@ -69,7 +69,7 @@ class kdecore_EXPORT KInstance + * Only for K(Unique)Application + * Initialize from src and delete it. + */ +- ++ + KInstance( KInstance* src ); + + /** +@@ -96,6 +96,14 @@ class kdecore_EXPORT KInstance + KSharedConfig *sharedConfig() const; + + /** ++ * Set a read-only flag on the configuration files ++ * This must be called before config() or dirs() to have any effect ++ * Defaults to FALSE ++ * @param ro read only if TRUE ++ */ ++ void setConfigReadOnly(bool ro); ++ ++ /** + * Returns an iconloader object. + * @return the iconloader object. + */ +@@ -162,6 +170,7 @@ protected: + virtual void virtual_hook( int id, void* data ); + private: + KInstancePrivate *d; ++ bool m_configReadOnly; + }; + + #endif +diff --git a/kdecore/kstandarddirs.cpp b/kdecore/kstandarddirs.cpp +index bce4bf4..bb8ae97 100644 +--- a/kdecore/kstandarddirs.cpp.orig 2011-08-21 06:15:32.000000000 +0200 ++++ b/kdecore/kstandarddirs.cpp 2012-06-19 21:17:34.550007910 +0200 +@@ -451,13 +450,17 @@ + bool KStandardDirs::exists(const TQString &fullPath) + { + KDE_struct_stat buff; +- if (access(TQFile::encodeName(fullPath), R_OK) == 0 && KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0) ++ if ((access(TQFile::encodeName(fullPath), R_OK) == 0) && (KDE_stat( TQFile::encodeName(fullPath), &buff ) == 0)) { + if (fullPath.tqat(fullPath.length() - 1) != QChar('/')) { + if (S_ISREG( buff.st_mode )) + return true; +- } else +- if (S_ISDIR( buff.st_mode )) ++ } ++ else { ++ if (S_ISDIR( buff.st_mode )) { + return true; ++ } ++ } ++ } + return false; + } + +@@ -767,17 +770,23 @@ + srv = findExe(TQString::tqfromLatin1("lnusertemp")); + if (!srv.isEmpty()) + { +- system(TQFile::encodeName(srv)+" "+type); +- result = readlink(TQFile::encodeName(dir).data(), link, 1023); ++ if (system(TQFile::encodeName(srv)+" "+type) < 0 ) { ++ result = readlink(TQFile::encodeName(dir).data(), link, 1023); ++ } ++ else { ++ result = -1; ++ } + } + } + if (result > 0) + { + link[result] = 0; +- if (link[0] == TQChar('/').latin1()) ++ if (link[0] == TQChar('/').latin1()) { + dir = TQFile::decodeName(link); +- else ++ } ++ else { + dir = TQDir::cleanDirPath(dir+TQFile::decodeName(link)); ++ } + } + #endif + addResourceDir(type, dir+QChar('/')); +@@ -1139,8 +1148,9 @@ + } + dircache.remove(type); + } +- if (!fullPath.endsWith("/")) ++ if (!fullPath.endsWith("/")) { + fullPath += "/"; ++ } + return fullPath; + } + +diff --git a/kdecore/kde-config.cpp.in b/kdecore/kde-config.cpp.in +index 90c5dae..c988b00 100644 +--- a/kdecore/kde-config.cpp.in ++++ b/kdecore/kde-config.cpp.in +@@ -120,6 +120,7 @@ int main(int argc, char **argv) + KCmdLineArgs::addCmdLineOptions( options ); // Add my own options. + + KInstance a("kde-config"); ++ a.setConfigReadOnly(TRUE); + (void)KGlobal::dirs(); // trigger the creation + (void)KGlobal::config(); + diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_build_kspell2.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_build_kspell2.patch new file mode 100644 index 000000000..b34f3bf7e --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_build_kspell2.patch @@ -0,0 +1,27 @@ +commit 3e284fadb9110cdd2a2dcf9c2e960c74f15e0360 +Author: Slávek Banko <slavek.banko@axis.cz> +Date: 1339570958 +0200 + + Fix FTBFS - incomplete build kspell2 + This closes Bug 657 + +diff --git a/kspell2/ui/CMakeLists.txt b/kspell2/ui/CMakeLists.txt +index 65ea158..a83774d 100644 +--- a/kspell2/ui/CMakeLists.txt ++++ b/kspell2/ui/CMakeLists.txt +@@ -54,12 +54,14 @@ tde_add_library( ${target} STATIC_PIC AUTOMOC + set( target kspell2 ) + + set( ${target}_SRCS ++ configwidget.cpp highlighter.cpp configdialog.cpp ++ kspell2ui.ui configui.ui + dialog.cpp + ) + + tde_add_library( ${target} SHARED AUTOMOC + SOURCES ${${target}_SRCS} + VERSION 1.0.0 +- LINK kspell2-static kspell2base-static kutils-shared ++ LINK kspell2base-static kutils-shared + DESTINATION ${LIB_INSTALL_DIR} + ) diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_composition_extension_detection.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_composition_extension_detection.patch new file mode 100644 index 000000000..1192b8616 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_composition_extension_detection.patch @@ -0,0 +1,159 @@ +commit 41ea89f79d28c456b296e8ddcce0a12c21e13f94 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1337872714 -0500 + + Fix composition extension detection + +diff --git a/kdecore/kapplication.cpp b/kdecore/kapplication.cpp +index 5c60e6f..b4caefc 100644 +--- a/kdecore/kapplication.cpp ++++ b/kdecore/kapplication.cpp +@@ -1804,9 +1804,7 @@ bool KApplication::isCompositionManagerAvailable() { + + // Now that we did all that by way of introduction...read the file! + FILE *pFile; +- char buffer[255]; + pFile = fopen(filename, "r"); +- int kompmgrpid = 0; + if (pFile) { + have_manager = true; + fclose(pFile); +@@ -1840,18 +1838,23 @@ bool KApplication::detectCompositionManagerAvailable(bool force_available, bool + compositing_manager_available = false; + } + else { +- Window root_window = XDefaultRootWindow(dpy); +- XCompositeRedirectSubwindows(dpy, root_window, CompositeRedirectManual); +- XSync(dpy, false); +- if (x11_composite_error_generated == true) { +- compositing_manager_available = true; ++ if (available) { // FIXME This variable does double duty to avoid breaking the ABI for R14.0. In reality it should be called perform_deep_check ++ Window root_window = XDefaultRootWindow(dpy); ++ XCompositeRedirectSubwindows(dpy, root_window, CompositeRedirectManual); ++ XSync(dpy, false); ++ if (x11_composite_error_generated == true) { ++ compositing_manager_available = true; ++ } ++ else { ++ XCompositeUnredirectSubwindows(dpy, root_window, CompositeRedirectManual); ++ compositing_manager_available = false; ++ } ++ XSetErrorHandler(NULL); ++ XCloseDisplay(dpy); + } + else { +- XCompositeUnredirectSubwindows(dpy, root_window, CompositeRedirectManual); +- compositing_manager_available = false; ++ compositing_manager_available = true; + } +- XSetErrorHandler(NULL); +- XCloseDisplay(dpy); + } + } + +@@ -1913,7 +1916,7 @@ Qt::HANDLE KApplication::getX11RGBAVisual(Display *dpy) { + return argb_x11_visual; + } + else { +- return NULL; ++ return (Qt::HANDLE)NULL; + } + } + +@@ -1923,7 +1926,7 @@ Qt::HANDLE KApplication::getX11RGBAColormap(Display *dpy) { + return argb_x11_colormap; + } + else { +- return NULL; ++ return (Qt::HANDLE)NULL; + } + } + +@@ -1997,8 +2000,20 @@ bool KApplication::detectCompositionManagerAvailable(bool force_available) { + strcat(filename, home); + strcat(filename, configfile); + +- /* now that we did all that by way of introduction...remove the file! */ +- unlink(filename); ++ /* now that we did all that by way of introduction...create or remove the file! */ ++ if (force_available) { ++ FILE *pFile; ++ char buffer[255]; ++ sprintf(buffer, "available"); ++ pFile = fopen(filename, "w"); ++ if (pFile) { ++ fwrite(buffer,1,strlen(buffer), pFile); ++ fclose(pFile); ++ } ++ } ++ else { ++ unlink(filename); ++ } + + free(filename); + filename = NULL; +@@ -2886,12 +2901,15 @@ void KApplication::invokeMailer(const TQString &_to, const TQString &_cc, const + TQString error; + // TODO this should check if cmd has a .desktop file, and use data from it, together + // with sending more ASN data +- if (kdeinitExec(cmd, cmdTokens, &error, NULL, startup_id )) +- if (Tty != kapp->type()) ++ if (kdeinitExec(cmd, cmdTokens, &error, NULL, startup_id )) { ++ if (Tty != kapp->type()) { + TQMessageBox::critical(kapp->mainWidget(), i18n("Could not Launch Mail Client"), + i18n("Could not launch the mail client:\n\n%1").arg(error), i18n("&OK")); +- else ++ } ++ else { + kdWarning() << "Could not launch mail client:\n" << error << endl; ++ } ++ } + } + #endif + +@@ -3597,7 +3615,9 @@ void KApplication::sigpipeHandler(int) + #ifndef NDEBUG + char msg[1000]; + sprintf(msg, "*** SIGPIPE *** (ignored, pid = %ld)\n", (long) getpid()); +- write(2, msg, strlen(msg)); ++ if (write(2, msg, strlen(msg)) < 0) { ++ // ERROR ++ } + #endif + + // Do nothing. +diff --git a/kdecore/kdetcompmgr.cpp b/kdecore/kdetcompmgr.cpp +index bfc3ac6..8b9b480 100644 +--- a/kdecore/kdetcompmgr.cpp ++++ b/kdecore/kdetcompmgr.cpp +@@ -84,7 +84,6 @@ int main(int argc, char **argv) + if (lSize > 254) + lSize = 254; + rewind (pFile); +- size_t result = fread (buffer, 1, lSize, pFile); + fclose(pFile); + kompmgrpid = atoi(buffer); + } +@@ -97,9 +96,7 @@ int main(int argc, char **argv) + } + } + +-// app.detectCompositionManagerAvailable(); +- +-// if (!app.isCompositionManagerAvailable()) { ++ if (app.detectCompositionManagerAvailable(false, false)) { // Perform a shallow check for the composite extension (a deep check would cause noticeable flicker) + KConfig config2("kwinrc", true); + config2.setGroup( "Notification Messages" ); + if (config2.readBoolEntry("UseTranslucency",false)) { +@@ -110,6 +107,10 @@ int main(int argc, char **argv) + app.detectCompositionManagerAvailable(true, false); + return 0; + } +-// } ++ } ++ else { ++ app.detectCompositionManagerAvailable(true, false); ++ return 1; ++ } + } + diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_creation_of_profile_directory.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_creation_of_profile_directory.patch new file mode 100644 index 000000000..b7f4e72dc --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_creation_of_profile_directory.patch @@ -0,0 +1,12 @@ +--- ./kdecore/kconfigbackend.cpp.orig 2011-08-11 04:30:15.000000000 +0200 ++++ ./kdecore/kconfigbackend.cpp 2012-06-18 23:27:20.034671093 +0200 +@@ -255,8 +255,7 @@ + mLocalFileName = KGlobal::dirs()->saveLocation(resType) + mfileName; + + if (useKDEGlobals) +- mGlobalFileName = KGlobal::dirs()->saveLocation("config") + +- TQString::tqfromLatin1("kdeglobals"); ++ mGlobalFileName = KGlobal::dirs()->saveLocation("config", TQString(), false) + TQString::fromLatin1("kdeglobals"); + else + mGlobalFileName = TQString::null; + diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_konq_filter.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_konq_filter.patch new file mode 100644 index 000000000..3589e6044 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_konq_filter.patch @@ -0,0 +1,83 @@ +commit 06b514847fffb79985e4bcde9f8dcc685c5d9ac5 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1328040359 -0600 + + Fix konq filter in list view mode + Select all now only selects shown (filtered) items + +diff --git a/tdeui/klistview.cpp b/tdeui/klistview.cpp +index e1c5811..b52fe68 100644 +--- a/kdeui/klistview.cpp ++++ b/kdeui/klistview.cpp +@@ -2356,6 +2356,52 @@ void KListViewItem::paintCell(TQPainter *p, const TQColorGroup &cg, int column, + TQListViewItem::paintCell(p, _cg, column, width, tqalignment); + } + ++/*! ++ If \a select is TRUE, all the items get selected; otherwise all ++ the items get unselected. This only works in the selection modes \c ++ Multi and \c Extended. In \c Single and \c NoSelection mode the ++ selection of the current item is just set to \a select. ++*/ ++ ++void KListView::selectAll( bool select ) ++{ ++ if ( selectionMode() == Multi || selectionMode() == Extended ) { ++ bool b = signalsBlocked(); ++ blockSignals( TRUE ); ++ bool anything = FALSE; ++ TQListViewItemIterator it( this ); ++ while ( it.current() ) { ++ TQListViewItem *i = it.current(); ++ if ( select == TRUE ) { ++ if ( (bool)i->isVisible() == TRUE ) { ++ i->setSelected( TRUE ); ++ anything = TRUE; ++ } ++ if ( (bool)i->isVisible() == FALSE ) { ++ i->setSelected( FALSE ); ++ anything = TRUE; ++ } ++ } ++ else { ++ if ( (bool)i->isSelected() != select ) { ++ i->setSelected( select ); ++ anything = TRUE; ++ } ++ } ++ ++it; ++ } ++ blockSignals( b ); ++ if ( anything ) { ++ emit selectionChanged(); ++// d->useDoubleBuffer = TRUE; ++ triggerUpdate(); ++ } ++ } else if ( currentItem() ) { ++ TQListViewItem * i = currentItem(); ++ setSelected( i, select ); ++ } ++} ++ + void KListView::virtual_hook( int, void* ) + { /*BASE::virtual_hook( id, data );*/ } + +diff --git a/tdeui/klistview.h b/tdeui/klistview.h +index ed10192..c8bb837 100644 +--- a/kdeui/klistview.h ++++ b/kdeui/klistview.h +@@ -660,6 +660,14 @@ public slots: + */ + bool tabOrderedRenaming() const; + ++ /** ++ * Override TQListView selectAll() so that filtered ++ * items are not selected ++ * ++ * @since 14.0 ++ */ ++ virtual void selectAll( bool select ); ++ + protected: + /** + * Determine whether a drop on position @p p would count as diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_ktempfile_special_bits.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_ktempfile_special_bits.patch new file mode 100644 index 000000000..7f21fe176 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_ktempfile_special_bits.patch @@ -0,0 +1,27 @@ +commit 9068fffdf82dc9cf60e83639b3a9b397761304cd +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1338002515 -0500 + + Fix KTempFile not obeying special bits on file creation + This closes Bug 349 + Add modem category to TDE hardware manager + +diff --git a/tdecore/ktempfile.cpp b/tdecore/ktempfile.cpp +index 2c7b56e..4632f00 100644 +--- a/kdecore/ktempfile.cpp ++++ b/kdecore/ktempfile.cpp +@@ -117,8 +117,12 @@ KTempFile::create(const TQString &filePrefix, const TQString &fileExtension, + // Success! + bOpen = true; + +- // Set uid/gid (necessary for SUID programs) +- fchown(mFd, getuid(), getgid()); ++ uid_t uid = getuid(); ++ uid_t euid = geteuid(); ++ if (uid != euid) { ++ // Set uid/gid (necessary for SUID programs) ++ fchown(mFd, getuid(), getgid()); ++ } + + // Set close on exec + fcntl(mFd, F_SETFD, FD_CLOEXEC); diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_slide_drawing.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_slide_drawing.patch new file mode 100644 index 000000000..e5b499167 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_slide_drawing.patch @@ -0,0 +1,52 @@ +commit a1c30c142a7b631d6ff66f12d8b48c9aec07190f +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1331881108 -0500 + + Fix slider drawing on external paint devices + +diff --git a/tdefx/kstyle.cpp b/tdefx/kstyle.cpp +index d4cb9bd..0220840 100644 +--- a/kdefx/kstyle.cpp ++++ b/kdefx/kstyle.cpp +@@ -1138,11 +1138,14 @@ void KStyle::drawComplexControl( TQ_ComplexControl control, + last = querySubControlMetrics(control, widget, SC_ScrollBarLast, opt); + subline2 = addline; + +- if ( useThreeButtonScrollBar ) +- if (horizontal) ++ if ( useThreeButtonScrollBar ) { ++ if (horizontal) { + subline2.moveBy(-addline.width(), 0); +- else ++ } ++ else { + subline2.moveBy(0, -addline.height()); ++ } ++ } + + // Draw the up/left button set + if ((controls & SC_ScrollBarSubLine) && subline.isValid()) { +@@ -1238,7 +1241,14 @@ void KStyle::drawComplexControl( TQ_ComplexControl control, + } + + p2.end(); +- bitBlt((TQWidget*)widget, r.x(), r.y(), &pix); ++ ++ TQPaintDevice* ppd = p->device(); ++ if (ppd->isExtDev()) { ++ p->drawPixmap(0, 0, pix); ++ } ++ else { ++ bitBlt((TQWidget*)widget, r.x(), r.y(), &pix); ++ } + break; + } + +@@ -2105,7 +2115,6 @@ TQImage TransparencyHandler::handleRealAlpha(TQImage img) { + for (int y = 0; y < h; ++y) { + TQRgb *ls = (TQRgb *)clearImage.scanLine( y ); + for (int x = 0; x < w; ++x) { +- TQRgb l = ls[x]; + ls[x] = tqRgba( 0, 0, 0, 0 ); + } + } diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_tdesu_internal_pathing.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_tdesu_internal_pathing.patch new file mode 100644 index 000000000..deb93afaa --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_tdesu_internal_pathing.patch @@ -0,0 +1,33 @@ +commit e131f10b84dbec07ad49d36c192777a72189a39e +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1329026747 -0600 + + Fix tdesu internal pathing + This closes Bug 766 + +diff --git a/tdesu/stub.cpp b/tdesu/stub.cpp +index 7f083d7..5b222f5 100644 +--- a/kdesu/stub.cpp ++++ b/kdesu/stub.cpp +@@ -121,11 +121,16 @@ int StubProcess::ConverseStub(int check) + TQCString path = getenv("PATH"); + if (!path.isEmpty() && path[0] == ':') + path = path.mid(1); +- if (m_User == "root") +- if (!path.isEmpty()) +- path = "/sbin:/bin:/usr/sbin:/usr/bin:" + path; +- else +- path = "/sbin:/bin:/usr/sbin:/usr/bin"; ++ if (m_User == "root") ++ if (!path.isEmpty()) ++ path = "/usr/local/sbin:/usr/sbin:/sbin:" + path; ++ else ++ if (strcmp(__KDE_BINDIR, "/usr/bin") == 0) { ++ path = "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin"; ++ } ++ else { ++ path = "/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:" __KDE_BINDIR ":/usr/bin:/bin"; ++ } + writeLine(path); + } else if (line == "user") { + writeLine(m_User); diff --git a/redhat/kdelibs/kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch b/redhat/kdelibs/kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch new file mode 100644 index 000000000..1cdb91958 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch @@ -0,0 +1,20 @@ +commit 6c806af1c99890adecb42abf52f4d6dc8ae72899 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1337556266 -0500 + + Initialize X11 threading when kinit is used to launch a program + This closes Bug 812 + Thanks to Slávek Banko for the patch! + +diff --git a/kinit/kinit.cpp b/kinit/kinit.cpp +index 2a74368..191757d 100644 +--- a/kinit/kinit.cpp ++++ b/kinit/kinit.cpp +@@ -1615,6 +1615,7 @@ int tdeinit_x_errhandler( Display *dpy, XErrorEvent *err ) + // another X connection for startup notification purposes + static void setupX() + { ++ XInitThreads(); + XSetIOErrorHandler(kdeinit_xio_errhandler); + XSetErrorHandler(kdeinit_x_errhandler); + } diff --git a/redhat/kdelibs/kdelibs-3.5.13-reduce_more_applications.patch b/redhat/kdelibs/kdelibs-3.5.13-reduce_more_applications.patch new file mode 100644 index 000000000..62ce343a2 --- /dev/null +++ b/redhat/kdelibs/kdelibs-3.5.13-reduce_more_applications.patch @@ -0,0 +1,41 @@ +commit 1c06ae32f64450c38f1294b8adda2fd9a6cc98b1 +Author: Darrell Anderson <humanreadable@yahoo.com> +Date: 1331690106 -0500 + + Reduce "More Applications" and extra koffice items from TDE menu. + This partially resolves bug report 653. + +diff --git a/kded/applications.menu b/kded/applications.menu +index 4b30a56..380196e 100644 +--- a/kded/applications.menu ++++ b/kded/applications.menu +@@ -272,16 +272,6 @@ + </And> + </Include> + <Menu> +- <Name>Email</Name> +- <Directory>kde-internet-email.directory</Directory> +- <Include> +- <And> +- <Category>Email</Category> +- <Not><Category>X-KDE-More</Category></Not> +- </And> +- </Include> +- </Menu> +- <Menu> + <Name>Terminal</Name> + <Directory>kde-internet-terminal.directory</Directory> + </Menu> +@@ -321,12 +311,6 @@ + <Directory>kde-office.directory</Directory> + <Layout> + <Merge type="menus"/> +- <Filename>kde-koshell.desktop</Filename> +- <Filename>kde-Kontact.desktop</Filename> +- <Separator/> +- <Filename>kde-kword.desktop</Filename> +- <Filename>kde-kspread.desktop</Filename> +- <Filename>kde-kpresenter.desktop</Filename> + <Merge type="files"/> + <Separator/> + <Menuname>More</Menuname> diff --git a/redhat/kdelibs/trinity-kdelibs-3.5.13.spec b/redhat/kdelibs/trinity-kdelibs-3.5.13.spec index 4b561731d..ac0a6bd58 100755 --- a/redhat/kdelibs/trinity-kdelibs-3.5.13.spec +++ b/redhat/kdelibs/trinity-kdelibs-3.5.13.spec @@ -15,9 +15,9 @@ %endif -Name: trinity-kdelibs +Name: tdelibs Version: 3.5.13 -Release: 8%{?dist}%{?_variant} +Release: 9%{?dist}%{?_variant} License: GPL Summary: TDE Libraries Group: System Environment/Libraries @@ -31,6 +31,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: kdelibs-%{version}.tar.gz +Obsoletes: trinity-kdelibs < %{version}-%{release} +Provides: trinity-kdelibs = %{version}-%{release} +Obsoletes: trinity-kdelibs-apidocs < %{version}-%{release} +Provides: trinity-kdelibs-apidocs = %{version}-%{release} + ## [kdelibs/kio] Disable 'max line length' detection [Bug #656] Patch10: kdelibs-3.5.13-maxlinelength.patch ## [kdelibs/kjs] Enable pcre support in kdelibs [Bug #569] @@ -49,6 +54,27 @@ Patch16: kdelibs-3.5.13-fix_add_printer.patch Patch17: kdelibs-3.5.13-fix_kdirwatch.patch ## [kdelibs/dcop] Fix 'dcoptypes.h' for compilation with GCC 4.7 Patch18: kdelibs-3.5.13-fix_dcoptypes_h.patch +## [tdelibs] Fix konq filter in list view mode. [Commit #06b51484] +Patch19: kdelibs-3.5.13-fix_konq_filter.patch +## [tdelibs] Fix tdesu internal pathing [Bug #766] [Commit #e131f10b] +Patch20: kdelibs-3.5.13-fix_tdesu_internal_pathing.patch +## [tdelibs] Fix slider drawing on external paint devices [Commit #a1c30c14] +Patch21: kdelibs-3.5.13-fix_slide_drawing.patch +## [tdelibs] Reduce "More Applications" and extra koffice items from TDE menu. [Commit #1c06ae32] +Patch22: kdelibs-3.5.13-reduce_more_applications.patch +## [tdelibs] Fix creation of profile directory in system root [Bug #293] [Commit #049525ee] +Patch23: kdelibs-3.5.13-fix_creation_of_profile_directory.patch +## [tdelibs] Initialize X11 threading when kinit is used to launch a program [Bug #812] [Commit #6c806af1] +Patch24: kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch +## [tdelibs] Fix composition extension detection [Commit #41ea89f7] +Patch25: kdelibs-3.5.13-fix_composition_extension_detection.patch +## [tdelibs] Fix KTempFile not obeying special bits on file creation [Bug #349] [Commit #9068fffd] +Patch26: kdelibs-3.5.13-fix_ktempfile_special_bits.patch +## [tdelibs] Add dynamic label support to kpassworddialog [Commit #3c752316] +Patch27: kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch +## [tdelibs] Fix FTBFS - incomplete build kspell2 [Bug #657] [Commit #3e284fad] +Patch28: kdelibs-3.5.13-fix_build_kspell2.patch + BuildRequires: cmake >= 2.8 BuildRequires: libtool @@ -80,128 +106,16 @@ Requires: avahi Requires: qt%{?_qt_suffix} Requires: avahi-qt3 - -%if "%{?_prefix}" == "/usr" -Provides: kdelibs%{?_qt_suffix} = %{version} -Obsoletes: kdelibs%{?_qt_suffix} <= 3.5.10 -%endif - %description Libraries for the Trinity Desktop Environment: -KDE Libraries included: kdecore (KDE core library), kdeui (user interface), +TDE Libraries included: tdecore (TDE core library), kdeui (user interface), kfm (file manager), khtmlw (HTML widget), kio (Input/Output, networking), kspell (spelling checker), jscript (javascript), kab (addressbook), kimgio (image manipulation). - -%package devel -Summary: %{name} - Development files -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -%if "%{?_prefix}" == "/usr" -Provides: kdelibs%{?_qt_suffix}-devel = %{version} -Obsoletes: kdelibs%{?_qt_suffix}-devel <= 3.5.10 -%endif - -%description devel -This package includes the header files you will need to compile -applications for TDE. - -%package apidocs -Group: Development/Libraries -Summary: %{name} - API documentation -Requires: %{name} = %{version}-%{release} -%if "%{?_prefix}" == "/usr" -Provides: kdelibs%{?_qt_suffix}-apidocs = %{version} -Obsoletes: kdelibs%{?_qt_suffix}-apidocs <= 3.5.10 -%endif - -%description apidocs -This package includes the TDE API documentation in HTML -format for easy browsing - - -%prep -%setup -q -n kdelibs -%patch10 -p1 -%patch11 -p0 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 - - -%build -unset QTDIR || : ; . /etc/profile.d/qt.sh -export PATH="%{_bindir}:${PATH}" -export LD_LIBRARY_PATH="%{_libdir}" -export PKG_CONFIG_PATH="%{_libdir}/pkgconfig" -export CMAKE_INCLUDE_PATH="%{_includedir}:%{_includedir}/tqt" - -%__mkdir build -cd build -%cmake \ - -DWITH_ARTS=ON \ - -DWITH_ALSA=ON \ - -DWITH_LIBART=ON \ - -DWITH_LIBIDN=OFF \ - -DWITH_SSL=ON \ - -DWITH_CUPS=ON \ - -DWITH_LUA=OFF \ - -DWITH_TIFF=ON \ - -DWITH_JASPER=ON \ - -DWITH_OPENEXR=ON \ - -DWITH_UTEMPTER=ON \ - -DWITH_AVAHI=ON \ - -DWITH_ASPELL=OFF \ - -DWITH_HSPELL=OFF \ - -DWITH_PCRE=ON \ - -DWITH_INOTIFY=ON \ - -DWITH_GAMIN=ON \ - .. - -%__make %{?_smp_mflags} - - -%install -%__rm -rf %{?buildroot} -%__make install DESTDIR=%{?buildroot} -C build - -%__mkdir_p %{?buildroot}%{_sysconfdir}/ld.so.conf.d -cat <<EOF >%{?buildroot}%{_sysconfdir}/ld.so.conf.d/trinity.conf -%if "%{?_prefix}" != "/usr" -%{_libdir} -%endif -%{tde_libdir} -EOF - -# Moves the XDG configuration files to TDE directory -%if "%{_prefix}" != "/usr" -%__install -p -D -m644 \ - "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" \ - "%{?buildroot}%{_prefix}/etc/xdg/menus/kde-applications.menu" -%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg" -%else -%__mv -f "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" "%{?buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu" -%endif - - -%clean -%__rm -rf %{?buildroot} - - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - - %files %defattr(-,root,root,-) -%doc README -%doc COPYING.LIB +%doc AUTHORS COPYING COPYING-DOCS COPYING.LIB README TODO %{_bindir}/artsmessage %{_bindir}/cupsdconf %{_bindir}/cupsdoprint @@ -259,8 +173,8 @@ EOF %{_bindir}/start_kdeinit_wrapper %attr(4755,root,root) %{_bindir}/kgrantpty %{_libdir}/lib*.so.* -%{_libdir}/libkdeinit_*.so -%{_libdir}/lib*.la +%{_libdir}/lib[kt]deinit_*.la +%{_libdir}/lib[kt]deinit_*.so %{tde_libdir}/ %{_datadir}/applications/kde/*.desktop %{_datadir}/autostart/kab2kabc.desktop @@ -285,6 +199,7 @@ EOF %{_datadir}/icons/hicolor/index.theme %{_datadir}/locale/all_languages %{tde_docdir}/HTML/en/common/* +%{_sysconfdir}/ld.so.conf.d/trinity.conf %else %exclude %{_bindir}/checkXML %exclude %{_bindir}/ksvgtopng @@ -299,7 +214,6 @@ EOF %exclude %{_datadir}/locale/all_languages %exclude %{tde_docdir}/HTML/en/common/* %endif -%{_sysconfdir}/ld.so.conf.d/trinity.conf # Avoid conflict with 'redhat-menus' package %if "%{_prefix}" == "/usr" @@ -311,27 +225,162 @@ EOF # New in TDE 3.5.13 %{_bindir}/kdetcompmgr +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +########## + +%package devel +Summary: %{name} - Development files +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +Obsoletes: trinity-kdelibs-devel < %{version}-%{release} +Provides: trinity-kdelibs-devel = %{version}-%{release} + +%description devel +This package includes the header files you will need to compile +applications for TDE. + %files devel %defattr(-,root,root,-) %{_bindir}/dcopidl* %{_bindir}/kconfig_compiler %{_bindir}/makekdewidgets %{_datadir}/apps/ksgmltools2/ -%{_includedir}/ -%{_libdir}/lib*.so -%{_libdir}/lib*.a +%{_includedir}/* +%{_libdir}/*.la +%{_libdir}/*.so +%{_libdir}/*.a +%exclude %{_libdir}/libkdeinit_*.la %exclude %{_libdir}/libkdeinit_*.so # New in TDE 3.5.13 %{_datadir}/cmake/kdelibs.cmake +%post devel -p /sbin/ldconfig + +%postun devel -p /sbin/ldconfig + +########## + +%if 0 +%package apidocs +Group: Development/Libraries +Summary: %{name} - API documentation +Requires: %{name} = %{version}-%{release} + +Obsoletes: trinity-kdelibs-devel < %{version}-%{release} +Provides: trinity-kdelibs-devel = %{version}-%{release} + +%description apidocs +This package includes the TDE API documentation in HTML +format for easy browsing + %files apidocs %defattr(-,root,root,-) -%{_docdir}/%{name}-%{version}/ #%{tde_docdir}/HTML/en/kdelibs* +%endif + +########## + +%prep +%setup -q -n kdelibs +%patch10 -p1 +%patch11 -p0 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 +%patch24 -p1 +%patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 + + +%build +unset QTDIR || : ; . /etc/profile.d/qt.sh +export PATH="%{_bindir}:${PATH}" +export LD_LIBRARY_PATH="%{_libdir}" +export PKG_CONFIG_PATH="%{_libdir}/pkgconfig" +export CMAKE_INCLUDE_PATH="%{_includedir}:%{_includedir}/tqt" + +%__mkdir build +cd build +%cmake \ + -DWITH_ARTS=ON \ + -DWITH_ALSA=ON \ + -DWITH_LIBART=ON \ + -DWITH_LIBIDN=OFF \ + -DWITH_SSL=ON \ + -DWITH_CUPS=ON \ + -DWITH_LUA=OFF \ + -DWITH_TIFF=ON \ + -DWITH_JASPER=ON \ + -DWITH_OPENEXR=ON \ + -DWITH_UTEMPTER=ON \ + -DWITH_AVAHI=ON \ + -DWITH_ASPELL=OFF \ + -DWITH_HSPELL=OFF \ + -DWITH_PCRE=ON \ + -DWITH_INOTIFY=ON \ + -DWITH_GAMIN=ON \ + .. + +%__make %{?_smp_mflags} + + +%install +%__rm -rf %{?buildroot} +%__make install DESTDIR=%{?buildroot} -C build + +%if "%{?_prefix}" != "/usr" +%__mkdir_p %{?buildroot}%{_sysconfdir}/ld.so.conf.d +cat <<EOF >%{?buildroot}%{_sysconfdir}/ld.so.conf.d/trinity.conf +%{_libdir} +EOF +%endif + +# Moves the XDG configuration files to TDE directory +%if "%{_prefix}" != "/usr" +%__install -p -D -m644 \ + "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" \ + "%{?buildroot}%{_prefix}/etc/xdg/menus/kde-applications.menu" +%__rm -rf "%{?buildroot}%{_sysconfdir}/xdg" +%else +%__mv -f "%{?buildroot}%{_sysconfdir}/xdg/menus/applications.menu" "%{?buildroot}%{_sysconfdir}/xdg/menus/kde-applications.menu" +%endif + + +%clean +%__rm -rf %{?buildroot} %changelog +* Tue Jun 19 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-9 +- Renames to 'tdelib' +- Fix 'ld.so.conf' file +- Fix konq filter in list view mode. [Commit #06b51484] +- Fix tdesu internal pathing [Bug #766] [Commit #e131f10b] +- Fix slider drawing on external paint devices [Commit #a1c30c14] +- Reduce "More Applications" and extra koffice items from TDE menu. [Commit #1c06ae32] +- Fix creation of profile directory in system root [Bug #293] [Commit #049525ee] +- Initialize X11 threading when kinit is used to launch a program [Bug #812] [Commit #6c806af1] +- Fix composition extension detection [Commit #41ea89f7] +- Fix KTempFile not obeying special bits on file creation [Bug #349] [Commit #9068fffd] +- Add dynamic label support to kpassworddialog [Commit #3c752316] +- Fix FTBFS - incomplete build kspell2 [Bug #657] [Commit #3e284fad] + * Tue Apr 24 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-8 - Fix "Konqueror: Does not update file pane with file changes" [Bug #756] - Fix compilation with GCC 4.7 diff --git a/redhat/kdeutils/kdeutils-3.5.13-ark_repairs_and_extensions.patch b/redhat/kdeutils/kdeutils-3.5.13-ark_repairs_and_extensions.patch new file mode 100644 index 000000000..da9f61ee9 --- /dev/null +++ b/redhat/kdeutils/kdeutils-3.5.13-ark_repairs_and_extensions.patch @@ -0,0 +1,1281 @@ +commit 1c84948d57c174bcd9732a5a0a51d42d3626d000 +Author: Slávek Banko <slavek.banko@axis.cz> +Date: 1339952967 +0200 + + [Ark] Repairs and extensions + Added support for Arj + Added support for check archives + Added support for password processing + Fix show broken filenames into real UTF-8 + This closes Bug 1030 + +diff --git a/ark/Makefile.am b/ark/Makefile.am +index 9761a28..14f33f5 100644 +--- a/ark/Makefile.am ++++ b/ark/Makefile.am +@@ -9,19 +9,19 @@ tdeinit_LTLIBRARIES = ark.la + lib_LTLIBRARIES = + + ark_la_SOURCES = main.cpp arkapp.cpp mainwindow.cpp +-ark_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) +-ark_la_LIBADD = libark_common.la $(LIB_KPARTS) ++ark_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(KDE_PLUGIN) ++ark_la_LIBADD = $(LIB_KDED) -lDCOP $(LIB_KHTML) $(LIB_KIO) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) libark_common.la $(LIB_KPARTS) + ark_la_COMPILE_FIRST = settings.h + + noinst_LTLIBRARIES = libark_common.la + + libark_common_la_SOURCES = settings.kcfgc archiveformatinfo.cpp + libark_common_la_LDFLAGS = $(all_libraries) -no-undefined +-libark_common_la_LIBADD = $(LIB_KFILE) ++libark_common_la_LIBADD = $(LIB_KDED) -lDCOP $(LIB_KHTML) $(LIB_KIO) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) $(LIB_KFILE) + + kde_module_LTLIBRARIES = libarkpart.la + libarkpart_la_LDFLAGS = $(KDE_PLUGIN) $(all_libraries) +-libarkpart_la_LIBADD = libark_common.la $(LIB_KPARTS) ++libarkpart_la_LIBADD = $(LIB_KDED) -lDCOP $(LIB_KHTML) $(LIB_KIO) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) libark_common.la $(LIB_KPARTS) + libarkpart_la_COMPILE_FIRST = settings.h + + libarkpart_la_SOURCES = ark_part.cpp arkfactory.cpp zip.cpp tar.cpp \ +@@ -31,7 +31,7 @@ libarkpart_la_SOURCES = ark_part.cpp arkfactory.cpp zip.cpp tar.cpp \ + arkwidget.cpp searchbar.cpp \ + addition.ui extraction.ui general.ui \ + arkviewer.cpp sevenzip.cpp extractiondialog.cpp \ +- ace.cpp tarlistingthread.cpp ++ ace.cpp tarlistingthread.cpp arj.cpp + + METASOURCES = AUTO + +diff --git a/ark/addition.ui b/ark/addition.ui +index 401c146..46541ca 100644 +--- a/ark/addition.ui ++++ b/ark/addition.ui +@@ -16,6 +16,15 @@ + <property name="name"> + <cstring>unnamed</cstring> + </property> ++ ++ <widget class="TQCheckBox"> ++ <property name="name"> ++ <cstring>kcfg_askCreatePassword</cstring> ++ </property> ++ <property name="text"> ++ <string>Ask for &password when create archive if possible</string> ++ </property> ++ </widget> + <widget class="TQCheckBox"> + <property name="name"> + <cstring>kcfg_replaceOnlyWithNewer</cstring> +diff --git a/ark/arch.cpp b/ark/arch.cpp +index ee2a23e..b4fc0e8 100644 +--- a/ark/arch.cpp ++++ b/ark/arch.cpp +@@ -33,6 +33,7 @@ + // QT includes + #include <tqapplication.h> + #include <tqfile.h> ++#include <tqtextcodec.h> + + // KDE includes + #include <kdebug.h> +@@ -59,6 +60,7 @@ + #include "ar.h" + #include "sevenzip.h" + #include "ace.h" ++#include "arj.h" + + Arch::ArchColumns::ArchColumns( int col, TQRegExp reg, int length, bool opt ) + : colRef( col ), pattern( reg ), maxLength( length ), optional( opt ) +@@ -288,7 +290,7 @@ void Arch::slotReceivedTOC( KProcess*, char* data, int length ) + + data[ lfChar ] = '\0'; + +- m_buffer.append( TQString::fromUtf8(data + startChar).latin1() ); ++ m_buffer.append( data + startChar ); + + data[ lfChar ] = '\n'; + startChar = lfChar + 1; +@@ -333,12 +335,16 @@ bool Arch::processLine( const TQCString &line ) + unsigned int pos = 0; + int strpos, len; + ++ TQTextCodec::setCodecForCStrings(TQTextCodec::codecForLocale()); ++ TQTextCodec *codec = TQTextCodec::codecForLocale(); ++ TQString tqunicode_line = codec->toUnicode( line ); ++ + // Go through our columns, try to pick out data, return silently on failure + for ( TQPtrListIterator <ArchColumns>col( m_archCols ); col.current(); ++col ) + { + ArchColumns *curCol = *col; + +- strpos = curCol->pattern.search( line, pos ); ++ strpos = curCol->pattern.search( tqunicode_line, pos ); + len = curCol->pattern.matchedLength(); + + if ( ( strpos == -1 ) || ( len > curCol->maxLength ) ) +@@ -354,7 +360,7 @@ bool Arch::processLine( const TQCString &line ) + + pos = strpos + len; + +- columns[curCol->colRef] = TQString::fromLocal8Bit( line.mid(strpos, len) ); ++ columns[curCol->colRef] = tqunicode_line.mid(strpos, len).utf8(); + } + + +@@ -388,6 +394,60 @@ bool Arch::processLine( const TQCString &line ) + return true; + } + ++void Arch::test() ++{ ++ emit sigTest(false); ++ KMessageBox::information(0, i18n("Not implemented.")); ++} ++ ++void Arch::slotTestExited( KProcess *_kp ) ++{ ++ bool success = ( _kp->normalExit() && ( _kp->exitStatus() == 0 ) ); ++ ++ if( !success ) ++ { ++ if ( passwordRequired() ) ++ { ++ TQString msg; ++ if ( !m_password.isEmpty() ) ++ msg = i18n("The password was incorrect. "); ++ if (KPasswordDialog::getPassword( m_password, msg+i18n("You must enter a password to extract the file:") ) == KPasswordDialog::Accepted ) ++ { ++ delete _kp; ++ _kp = m_currentProcess = 0; ++ clearShellOutput(); ++ test(); // try to test the archive again with a password ++ return; ++ } ++ m_password = ""; ++ emit sigTest( false ); ++ delete _kp; ++ _kp = m_currentProcess = 0; ++ return; ++ } ++ else if ( m_password.isEmpty() || _kp->exitStatus() > 1 ) ++ { ++ TQApplication::restoreOverrideCursor(); ++ ++ TQString msg = i18n( "The test operation failed." ); ++ ++ if ( !getLastShellOutput().isNull() ) ++ { ++ //getLastShellOutput() is a TQString. errorList is expecting TQStringLists to show in multiple lines ++ TQStringList list = TQStringList::split( "\n", getLastShellOutput() ); ++ KMessageBox::errorList( m_gui, msg, list ); ++ clearShellOutput(); ++ } ++ else ++ { ++ KMessageBox::error( m_gui, msg ); ++ } ++ } ++ } ++ delete _kp; ++ _kp = m_currentProcess = 0; ++ emit sigTest( success ); ++} + + Arch *Arch::archFactory( ArchType aType, + ArkWidget *parent, const TQString &filename, +@@ -422,6 +482,9 @@ Arch *Arch::archFactory( ArchType aType, + case ACE_FORMAT: + return new AceArch( parent, filename ); + ++ case ARJ_FORMAT: ++ return new ArjArch( parent, filename ); ++ + case UNKNOWN_FORMAT: + default: + return 0; +diff --git a/ark/arch.h b/ark/arch.h +index 7aa18ac..85c6c7d 100644 +--- a/ark/arch.h ++++ b/ark/arch.h +@@ -65,7 +65,7 @@ class ArkWidget; + + enum ArchType { UNKNOWN_FORMAT, ZIP_FORMAT, TAR_FORMAT, AA_FORMAT, + LHA_FORMAT, RAR_FORMAT, ZOO_FORMAT, COMPRESSED_FORMAT, +- SEVENZIP_FORMAT, ACE_FORMAT }; ++ SEVENZIP_FORMAT, ACE_FORMAT, ARJ_FORMAT }; + + typedef TQValueList< TQPair< TQString, TQt::AlignmentFlags > > ColumnList; + +@@ -101,6 +101,7 @@ class Arch : public TQObject + virtual void open() = 0; + virtual void create() = 0; + virtual void remove( TQStringList * ) = 0; ++ virtual void test(); + + virtual void addFile( const TQStringList & ) = 0; + virtual void addDir( const TQString & ) = 0; +@@ -150,12 +151,16 @@ class Arch : public TQObject + static Arch *archFactory( ArchType aType, ArkWidget *parent, + const TQString &filename, + const TQString &openAsMimeType = TQString() ); ++ TQString password() { return m_password; } ++ void setPassword(const TQString & pw) { m_password = pw.local8Bit(); } ++ virtual void createPassword() {} + + protected slots: + void slotOpenExited( KProcess* ); + void slotExtractExited( KProcess* ); + void slotDeleteExited( KProcess* ); + void slotAddExited( KProcess* ); ++ void slotTestExited( KProcess* ); + + void slotReceivedOutput( KProcess *, char*, int ); + +@@ -168,6 +173,7 @@ class Arch : public TQObject + void sigDelete( bool ); + void sigExtract( bool ); + void sigAdd( bool ); ++ void sigTest( bool ); + void headers( const ColumnList& columns ); + + protected: // data +diff --git a/ark/archiveformatinfo.cpp b/ark/archiveformatinfo.cpp +index 2dcbabb..2f6fded 100644 +--- a/ark/archiveformatinfo.cpp ++++ b/ark/archiveformatinfo.cpp +@@ -84,6 +84,8 @@ void ArchiveFormatInfo::buildFormatInfos() + + addFormatInfo( SEVENZIP_FORMAT, "application/x-7z", ".7z" ); + ++ addFormatInfo( ARJ_FORMAT, "application/x-arj", ".arj" ); ++ + if ( ArkSettings::aceSupport() ) + addFormatInfo( ACE_FORMAT, "application/x-ace", ".ace" ); + } +diff --git a/ark/arj.cpp b/ark/arj.cpp +new file mode 100644 +index 0000000..4d94776 +--- /dev/null ++++ b/ark/arj.cpp +@@ -0,0 +1,326 @@ ++/* ++ ++ ark -- archiver for the KDE project ++ ++ Copyright (C) ++ ++ 1997-1999: Rob Palmbos palm9744@kettering.edu ++ 1999: Francois-Xavier Duranceau duranceau@kde.org ++ 1999-2000: Corel Corporation (author: Emily Ezust, emilye@corel.com) ++ 2001: Corel Corporation (author: Michael Jarrett, michaelj@corel.com) ++ 2007: ALT Linux (author: Sergey V Turchin, zerg@altlinux.org) ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version 2 ++ of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++ ++// Qt includes ++#include <tqdir.h> ++#include <tqtextcodec.h> ++ ++// KDE includes ++#include <kdebug.h> ++#include <klocale.h> ++#include <kmessagebox.h> ++#include <kprocess.h> ++#include <kpassdlg.h> ++ ++// ark includes ++#include "arj.h" ++#include "arkwidget.h" ++#include "settings.h" ++ ++ ++ArjArch::ArjArch( ArkWidget *_gui, const TQString & _fileName ) ++ : Arch( _gui, _fileName ) ++{ ++ m_archiver_program = "arj"; ++ m_unarchiver_program = "arj"; ++ verifyCompressUtilityIsAvailable( m_archiver_program ); ++ verifyUncompressUtilityIsAvailable( m_unarchiver_program ); ++ ++ m_headerString = "-----------"; ++ m_numCols = 6; ++} ++ ++void ArjArch::setHeaders() ++{ ++ ColumnList list; ++ list.append( FILENAME_COLUMN ); ++ list.append( SIZE_COLUMN ); ++ list.append( PACKED_COLUMN ); ++ list.append( RATIO_COLUMN ); ++ list.append( TIMESTAMP_COLUMN ); ++ list.append( PERMISSION_COLUMN ); ++ ++ emit headers( list ); ++} ++ ++void ArjArch::create() ++{ ++ emit sigCreate( this, true, m_filename, ++ Arch::Extract | Arch::Delete | Arch::Add | Arch::View ); ++} ++ ++void ArjArch::createPassword() ++{ ++ if( m_password.isEmpty() && ArkSettings::askCreatePassword() ) ++ KPasswordDialog::getNewPassword( m_password, i18n("Warning!\nUsing KGpg for encryption is more secure.\nCancel this dialog or enter password for %1 archiver:").arg(m_archiver_program) ); ++} ++ ++ ++void ArjArch::addDir( const TQString & _dirName ) ++{ ++ if ( !_dirName.isEmpty() ) ++ { ++ TQStringList list; ++ list.append( _dirName ); ++ addFile( list ); ++ } ++} ++ ++void ArjArch::addFile( const TQStringList & urls ) ++{ ++ KProcess *kp = m_currentProcess = new KProcess; ++ ++ kp->clearArguments(); ++ *kp << m_archiver_program; ++ *kp << "a"; ++ ++ if ( ArkSettings::replaceOnlyWithNewer() ) ++ *kp << "-u"; ++ ++ if ( ArkSettings::rarRecurseSubdirs() ) ++ *kp << "-r"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-g"+m_password; ++ ++ *kp << m_filename; ++ ++ KURL dir( urls.first() ); ++ TQDir::setCurrent( dir.directory() ); ++ ++ TQStringList::ConstIterator iter; ++ for ( iter = urls.begin(); iter != urls.end(); ++iter ) ++ { ++ KURL url( *iter ); ++ *kp << url.fileName(); ++ } ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotAddExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigAdd( false ); ++ } ++} ++ ++bool ArjArch::processLine( const TQCString &line ) ++{ ++ TQString unicode_line; ++ ++ TQTextCodec *codec = TQTextCodec::codecForLocale(); ++ TQTextCodec *codec_alt = TQTextCodec::codecForName("CP1251"); ++ unicode_line = codec->toUnicode( line ); ++ ++ TQStringList list; ++ ++ TQStringList l2 = TQStringList::split( ' ', line ); ++ if( l2.size() >= 2 && l2[0].endsWith(")") && l2[0].length() == 4 ) ++ { ++ file_entry = line.mid(4); ++ } ++ else if( l2.size() > 3 ) ++ { ++ if( l2[1] == "UNIX" ) ++ list << codec->toUnicode(file_entry).stripWhiteSpace(); // filename ++ else ++ list << codec_alt->toUnicode(file_entry).stripWhiteSpace(); // filename ++ ++ list << l2[ 2 ]; // size ++ list << l2[ 3 ]; // packed ++ double ratio = l2[4].toDouble(); ++ if( ratio == 0 ) ++ ratio = 1; ++ list << TQString("%1").arg(100-100/ratio); // ratio ++ ++ TQStringList date = TQStringList::split( '-', l2[ 5 ] ); ++ list << ArkUtils::fixYear( date[ 0 ].latin1() ) + '-' + date[ 1 ] + '-' + date [ 2 ] + ' ' + l2[6]; // date ++ list << l2[ 7 ]; // attributes ++ ++ m_gui->fileList()->addItem( list ); // send to GUI ++ ++ file_entry = ""; ++ } ++ ++ return true; ++} ++ ++ ++void ArjArch::open() ++{ ++ setHeaders(); ++ ++ m_buffer = ""; ++ m_header_removed = false; ++ m_finished = false; ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ ++ *kp << m_unarchiver_program << "v" << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedTOC(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotOpenExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigOpen( this, false, TQString::null, 0 ); ++ } ++} ++ ++void ArjArch::unarchFileInternal() ++{ ++ // if fileList is empty, all files are extracted. ++ // if destDir is empty, abort with error. ++ if ( m_destDir.isEmpty() || m_destDir.isNull() ) ++ { ++ kdError( 1601 ) << "There was no extract directory given." << endl; ++ return; ++ } ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_unarchiver_program; ++ *kp << "x"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-g" + m_password; ++ ++ if ( ArkSettings::extractOverwrite() ) ++ *kp << "-jyo"; ++ ++ *kp << "-jycv"; ++ ++ *kp << "-w" + m_destDir; ++ *kp << "-ht" + m_destDir; ++ ++ TQTextCodec *codec = TQTextCodec::codecForLocale(); ++ *kp << codec->fromUnicode(m_filename); ++ ++ // if the list is empty, no filenames go on the command line, ++ // and we then extract everything in the archive. ++ if ( m_fileList ) ++ { ++ TQStringList::Iterator it; ++ ++ for ( it = m_fileList->begin(); it != m_fileList->end(); ++it ) ++ { ++ *kp << codec->fromUnicode(*it); ++ } ++ } ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotExtractExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigExtract( false ); ++ } ++} ++ ++bool ArjArch::passwordRequired() ++{ ++ return m_lastShellOutput.findRev("File is password encrypted") != -1; ++} ++ ++void ArjArch::remove( TQStringList *list ) ++{ ++ if ( !list ) ++ return; ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_archiver_program << "d" << m_filename; ++ ++ TQStringList::Iterator it; ++ for ( it = list->begin(); it != list->end(); ++it ) ++ { ++ TQString str = *it; ++ *kp << str; ++ } ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotDeleteExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigDelete( false ); ++ } ++} ++ ++void ArjArch::test() ++{ ++ clearShellOutput(); ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_unarchiver_program << "t"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-g" + m_password; ++ ++ *kp << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotTestExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigTest( false ); ++ } ++} ++ ++#include "arj.moc" +diff --git a/ark/arj.h b/ark/arj.h +new file mode 100644 +index 0000000..13d45b4 +--- /dev/null ++++ b/ark/arj.h +@@ -0,0 +1,65 @@ ++/* ++ ++ ark -- archiver for the KDE project ++ ++ Copyright (C) ++ ++ 1997-1999: Rob Palmbos palm9744@kettering.edu ++ 1999: Francois-Xavier Duranceau duranceau@kde.org ++ 1999-2000: Corel Corporation (author: Emily Ezust, emilye@corel.com) ++ 2001: Corel Corporation (author: Michael Jarrett, michaelj@corel.com) ++ 2007: ALT Linux (author: Sergey V Turchin, zerg@altlinux.org) ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version 2 ++ of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ ++*/ ++ ++#ifndef ARJARCH_H ++#define ARJARCH_H ++ ++#include "arch.h" ++ ++class TQString; ++class TQStringList; ++ ++class ArkWidget; ++ ++class ArjArch : public Arch ++{ ++ Q_OBJECT ++ public: ++ ArjArch( ArkWidget *_gui, const TQString & _fileName ); ++ virtual ~ArjArch() { } ++ ++ virtual void open(); ++ virtual void create(); ++ virtual void test(); ++ ++ virtual void remove(TQStringList*); ++ virtual void addFile(const TQStringList&); ++ virtual void addDir(const TQString&); ++ ++ virtual void unarchFileInternal(); ++ virtual bool passwordRequired(); ++ virtual void createPassword(); ++ ++ protected slots: ++ virtual bool processLine( const TQCString & ); ++ private: ++ TQCString file_entry; ++ void setHeaders(); ++}; ++ ++#endif /* ARJARCH_H */ +diff --git a/ark/ark.kcfg b/ark/ark.kcfg +index 10e7c22..0a20d55 100644 +--- a/ark/ark.kcfg ++++ b/ark/ark.kcfg +@@ -18,6 +18,11 @@ + <whatsthis>Overwrite any files that have matching names on disk with the one from the archive</whatsthis> + <default>false</default> + </entry> ++ <entry name="askCreatePassword" type="Bool"> ++ <label>Ask for password when create archive if possible</label> ++ <whatsthis>Ask for password when create archive if possible</whatsthis> ++ <default>true</default> ++ </entry> + </group> + <group name="Tar"> + <entry name="preservePerms" type="Bool"> +diff --git a/ark/ark.la.cpp b/ark/ark.la.cpp +new file mode 100644 +index 0000000..3d480c4 +--- /dev/null ++++ b/ark/ark.la.cpp +@@ -0,0 +1,2 @@ ++extern "C" int kdemain(int argc, char* argv[]); ++int main(int argc, char* argv[]) { return kdemain(argc,argv); } +diff --git a/ark/ark_dummy.cpp b/ark/ark_dummy.cpp +new file mode 100644 +index 0000000..efd89d8 +--- /dev/null ++++ b/ark/ark_dummy.cpp +@@ -0,0 +1,3 @@ ++#include <kdemacros.h> ++extern "C" int kdemain(int argc, char* argv[]); ++extern "C" KDE_EXPORT int tdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); } +diff --git a/ark/ark_part.cpp b/ark/ark_part.cpp +index f52d763..456e397 100644 +--- a/ark/ark_part.cpp ++++ b/ark/ark_part.cpp +@@ -139,6 +139,9 @@ ArkPart::setupActions() + editAction = new KAction(i18n("Edit &With..."), 0, TQT_TQOBJECT(awidget), + TQT_SLOT(action_edit()), actionCollection(), "edit"); + ++ testAction = new KAction(i18n("&Test integrity"), 0, awidget, ++ TQT_SLOT(action_test()), actionCollection(), "test"); ++ + selectAllAction = KStdAction::selectAll(TQT_TQOBJECT(awidget->fileList()), TQT_SLOT(selectAll()), actionCollection(), "select_all"); + + deselectAllAction = new KAction(i18n("&Unselect All"), 0, TQT_TQOBJECT(awidget->fileList()),TQT_SLOT(unselectAll()), actionCollection(), "deselect_all"); +@@ -189,6 +192,7 @@ void ArkPart::fixEnables() + addDirAction->setEnabled(awidget->isArchiveOpen() && + !bReadOnly && bAddDirSupported); + extractAction->setEnabled(bHaveFiles); ++ testAction->setEnabled(true); + awidget->searchBar()->setEnabled(bHaveFiles); + + bool b = ( bHaveFiles +@@ -216,6 +220,7 @@ void ArkPart::initialEnables() + addDirAction->setEnabled(false); + openWithAction->setEnabled(false); + editAction->setEnabled(false); ++ testAction->setEnabled(false); + + awidget->searchBar()->setEnabled(false); + } +@@ -234,6 +239,7 @@ void ArkPart::disableActions() + addDirAction->setEnabled(false); + openWithAction->setEnabled(false); + editAction->setEnabled(false); ++ testAction->setEnabled(false); + awidget->searchBar()->setEnabled(false); + } + +diff --git a/ark/ark_part.h b/ark/ark_part.h +index fb136b6..1fa6166 100644 +--- a/ark/ark_part.h ++++ b/ark/ark_part.h +@@ -139,6 +139,7 @@ private: + KAction *deselectAllAction; + KAction *invertSelectionAction; + KAction *editAction; ++ KAction *testAction; + + // the following have different enable rules from the above KActions + KAction *popupViewAction; +diff --git a/ark/ark_part.rc b/ark/ark_part.rc +index ff0a894..39525e1 100644 +--- a/ark/ark_part.rc ++++ b/ark/ark_part.rc +@@ -21,6 +21,7 @@ + <Action name="view"/> + <Action name="open_with"/> + <Action name="edit"/> ++ <Action name="test"/> + </Menu> + <Menu noMerge="1" name="settings"> + <text>&Settings</text> +diff --git a/ark/ark_part_readonly.rc b/ark/ark_part_readonly.rc +index c124aae..84f4f02 100644 +--- a/ark/ark_part_readonly.rc ++++ b/ark/ark_part_readonly.rc +@@ -17,6 +17,7 @@ + <Action name="extract"/> + <Action name="view"/> + <Action name="open_with"/> ++ <Action name="test"/> + </Menu> + <Menu noMerge="1" name="settings"> + <text>&Settings</text> +diff --git a/ark/arkwidget.cpp b/ark/arkwidget.cpp +index 80fd413..0935e38 100644 +--- a/ark/arkwidget.cpp ++++ b/ark/arkwidget.cpp +@@ -739,7 +739,10 @@ ArkWidget::file_open(const KURL& url) + m_url = url; + //arch->clearShellOutput(); + +- openArchive( strFile ); ++ if( url.hasPass() ) ++ openArchive( strFile, url.pass() ); ++ else ++ openArchive( strFile ); + } + + +@@ -1184,6 +1187,8 @@ ArkWidget::slotAddDone(bool _bSuccess) + //simulate reload + KURL u; + u.setPath( arch->fileName() ); ++ if( !arch->password().isEmpty() ) ++ u.setPass( arch->password() ); + file_close(); + file_open( u ); + emit setWindowCaption( u.path() ); +@@ -1682,6 +1687,25 @@ ArkWidget::action_view() + } + + void ++ArkWidget::action_test() ++{ ++ connect( arch, TQT_SIGNAL( sigTest( bool ) ), this, ++ TQT_SLOT( slotTestDone( bool ) ) ); ++ busy( i18n( "Testing..." ) ); ++ arch->test(); ++} ++ ++void ++ArkWidget::slotTestDone(bool ok) ++{ ++ disconnect( arch, TQT_SIGNAL( sigTest( bool ) ), this, ++ TQT_SLOT( slotTestDone( bool ) ) ); ++ ready(); ++ if( ok ) ++ KMessageBox::information(0, i18n("Test successful.")); ++} ++ ++void + ArkWidget::viewSlotExtractDone( bool success ) + { + if ( success ) +@@ -2102,6 +2126,7 @@ ArkWidget::slotCreate(Arch * _newarch, bool _success, const TQString & _filename + m_bIsSimpleCompressedFile = + (m_archType == COMPRESSED_FORMAT); + fixEnables(); ++ arch->createPassword(); + } + else + { +@@ -2115,7 +2140,7 @@ ArkWidget::slotCreate(Arch * _newarch, bool _success, const TQString & _filename + ////////////////////////////////////////////////////////////////////// + + void +-ArkWidget::openArchive( const TQString & _filename ) ++ArkWidget::openArchive( const TQString & _filename, const TQString & _password ) + { + Arch *newArch = 0; + ArchType archtype; +@@ -2172,6 +2197,7 @@ ArkWidget::openArchive( const TQString & _filename ) + busy( i18n( "Opening the archive..." ) ); + m_fileListView->setUpdatesEnabled( false ); + arch = newArch; ++ newArch->setPassword(_password); + newArch->open(); + emit addRecentURL( m_url ); + } +diff --git a/ark/arkwidget.h b/ark/arkwidget.h +index 67c2f78..fa2b68e 100644 +--- a/ark/arkwidget.h ++++ b/ark/arkwidget.h +@@ -121,6 +121,7 @@ protected slots: + bool action_extract(); + void slotOpenWith(); + void action_edit(); ++ void action_test(); + + void doPopup(TQListViewItem *, const TQPoint &, int); // right-click menus + void viewFile(TQListViewItem*); // doubleClick view files +@@ -133,6 +134,7 @@ protected slots: + void slotExtractRemoteDone(KIO::Job *job); + void slotAddDone(bool); + void slotEditFinished(KProcess *); ++ void slotTestDone(bool); + signals: + void openURLRequest( const KURL & url ); + void request_file_quit(); +@@ -235,7 +237,7 @@ protected: + void createFileListView(); + + bool createArchive(const TQString & name); +- void openArchive(const TQString & name); ++ void openArchive(const TQString & name, const TQString & pass = ""); + + void showCurrentFile(); + +diff --git a/ark/lha.cpp b/ark/lha.cpp +index f83e809..14fa68d 100644 +--- a/ark/lha.cpp ++++ b/ark/lha.cpp +@@ -55,8 +55,10 @@ + LhaArch::LhaArch( ArkWidget *_gui, const TQString & _fileName ) + : Arch( _gui, _fileName ) + { +- m_archiver_program = "lha"; ++ m_archiver_program = m_unarchiver_program = "lha"; ++ + verifyCompressUtilityIsAvailable( m_archiver_program ); ++ verifyUncompressUtilityIsAvailable( m_unarchiver_program ); + + m_headerString = "----"; + } +diff --git a/ark/rar.cpp b/ark/rar.cpp +index 5369e89..ac59d74 100644 +--- a/ark/rar.cpp ++++ b/ark/rar.cpp +@@ -107,6 +107,12 @@ bool RarArch::processLine( const TQCString &line ) + + TQStringList l2 = TQStringList::split( ' ', line ); + ++ if( l2[5].startsWith("d") ) ++ { ++ m_isFirstLine = true; ++ return true; ++ } ++ + list << m_entryFilename; // filename + list << l2[ 0 ]; // size + list << l2[ 1 ]; // packed +@@ -179,6 +185,12 @@ void RarArch::create() + Arch::Extract | Arch::Delete | Arch::Add | Arch::View ); + } + ++void RarArch::createPassword() ++{ ++ if( m_password.isEmpty() && ArkSettings::askCreatePassword() ) ++ KPasswordDialog::getNewPassword( m_password, i18n("Warning!\nUsing KGpg for encryption is more secure.\nCancel this dialog or enter password for %1 archiver:").arg(m_archiver_program) ); ++} ++ + void RarArch::addDir( const TQString & _dirName ) + { + if ( !_dirName.isEmpty() ) +@@ -206,6 +218,9 @@ void RarArch::addFile( const TQStringList & urls ) + if ( ArkSettings::rarRecurseSubdirs() ) + *kp << "-r"; + ++ if ( !m_password.isEmpty() ) ++ *kp << "-p"+m_password; ++ + *kp << m_filename; + + KURL dir( urls.first() ); +@@ -291,7 +306,7 @@ void RarArch::unarchFileInternal() + + bool RarArch::passwordRequired() + { +- return m_lastShellOutput.findRev("password incorrect ?)")+1; ++ return m_lastShellOutput.find("Enter password") >= 0; + } + + void RarArch::remove( TQStringList *list ) +@@ -325,4 +340,32 @@ void RarArch::remove( TQStringList *list ) + } + } + ++void RarArch::test() ++{ ++ clearShellOutput(); ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_unarchiver_program << "t"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-p" + m_password; ++ ++ *kp << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotTestExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigTest( false ); ++ } ++} ++ + #include "rar.moc" +diff --git a/ark/rar.h b/ark/rar.h +index 5b0e183..9bd0aea 100644 +--- a/ark/rar.h ++++ b/ark/rar.h +@@ -42,6 +42,7 @@ class RarArch : public Arch + + virtual void open(); + virtual void create(); ++ virtual void test(); + + virtual void addFile( const TQStringList & ); + virtual void addDir( const TQString & ); +@@ -49,6 +50,7 @@ class RarArch : public Arch + virtual void remove( TQStringList * ); + virtual void unarchFileInternal(); + virtual bool passwordRequired(); ++ virtual void createPassword(); + + protected slots: + virtual bool processLine( const TQCString & ); +diff --git a/ark/sevenzip.cpp b/ark/sevenzip.cpp +index 216fb8d..c1dc7a7 100644 +--- a/ark/sevenzip.cpp ++++ b/ark/sevenzip.cpp +@@ -25,6 +25,7 @@ + */ + + #include <tqdir.h> ++#include <tqtextcodec.h> + + #include <kglobal.h> + #include <klocale.h> +@@ -120,6 +121,12 @@ void SevenZipArch::create() + Arch::Extract | Arch::Delete | Arch::Add | Arch::View ); + } + ++void SevenZipArch::createPassword() ++{ ++ if( m_password.isEmpty() && ArkSettings::askCreatePassword() ) ++ KPasswordDialog::getNewPassword( m_password, i18n("Warning!\nUsing KGpg for encryption is more secure.\nCancel this dialog or enter password for %1 archiver:").arg(m_archiver_program) ); ++} ++ + void SevenZipArch::addFile( const TQStringList & urls ) + { + KProcess *kp = m_currentProcess = new KProcess; +@@ -127,6 +134,9 @@ void SevenZipArch::addFile( const TQStringList & urls ) + kp->clearArguments(); + *kp << m_archiver_program << "a" ; + ++ if ( !m_password.isEmpty() ) ++ *kp << "-p" + m_password; ++ + KURL url( urls.first() ); + TQDir::setCurrent( url.directory() ); + +@@ -163,6 +173,11 @@ void SevenZipArch::addDir( const TQString & dirName ) + } + } + ++bool SevenZipArch::passwordRequired() ++{ ++ return m_lastShellOutput.find("Enter password") >= 0; ++} ++ + void SevenZipArch::remove( TQStringList *list ) + { + if ( !list ) +@@ -212,6 +227,12 @@ void SevenZipArch::unarchFileInternal( ) + //*kp << "-ao"; + } + ++ // FIXME overwrite existing files created with wrong password ++ *kp << "-y"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-p" + m_password; ++ + *kp << m_filename; + + // if the file list is empty, no filenames go on the command line, +@@ -243,12 +264,15 @@ void SevenZipArch::unarchFileInternal( ) + + bool SevenZipArch::processLine( const TQCString& _line ) + { +- TQCString line( _line ); ++ TQString line; + TQString columns[ 11 ]; + unsigned int pos = 0; + int strpos, len; + +- columns[ 0 ] = line.right( line.length() - m_nameColumnPos +1); ++ TQTextCodec *codec = TQTextCodec::codecForLocale(); ++ line = codec->toUnicode( _line ); ++ ++ columns[ 0 ] = line.right( line.length() - m_nameColumnPos); + line.truncate( m_nameColumnPos ); + + // Go through our columns, try to pick out data, return silently on failure +@@ -275,6 +299,8 @@ bool SevenZipArch::processLine( const TQCString& _line ) + columns[ curCol->colRef ] = line.mid( strpos, len ); + } + ++ // Separated directories pass ++ if(columns[4].length() && columns[4][0] == 'D') return true; + + if ( m_dateCol >= 0 ) + { +@@ -364,4 +390,32 @@ void SevenZipArch::slotReceivedTOC( KProcess*, char* data, int length ) + data[ length ] = endchar; + } + ++void SevenZipArch::test() ++{ ++ clearShellOutput(); ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_unarchiver_program << "t"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-p" + m_password; ++ ++ *kp << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotTestExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigTest( false ); ++ } ++} ++ + #include "sevenzip.moc" +diff --git a/ark/sevenzip.h b/ark/sevenzip.h +index c37708b..de10693 100644 +--- a/ark/sevenzip.h ++++ b/ark/sevenzip.h +@@ -36,12 +36,15 @@ class SevenZipArch : public Arch + + virtual void open(); + virtual void create(); ++ virtual void test(); + + virtual void addFile( const TQStringList & ); + virtual void addDir( const TQString & ); + + virtual void remove( TQStringList * ); + virtual void unarchFileInternal( ); ++ virtual bool passwordRequired(); ++ virtual void createPassword(); + + protected slots: + virtual bool processLine( const TQCString& line ); +diff --git a/ark/tar.cpp b/ark/tar.cpp +index 4cdb792..1c1fac9 100644 +--- a/ark/tar.cpp ++++ b/ark/tar.cpp +@@ -785,5 +785,42 @@ void TarArch::customEvent( TQCustomEvent *ev ) + } + } + ++void TarArch::test() ++{ ++ clearShellOutput(); ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ TQString uncomp = getUnCompressor(); ++ ++ *kp << uncomp; ++ ++ if( uncomp == "bunzip2" || uncomp == "gunzip" || uncomp == "lzop" ) ++ { ++ *kp << "-t"; ++ } ++ else ++ { ++ Arch::test(); ++ return; ++ } ++ ++ *kp << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotTestExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigTest( false ); ++ } ++} ++ + #include "tar.moc" + // kate: space-indent on; +diff --git a/ark/tar.h b/ark/tar.h +index df0d012..3b75008 100644 +--- a/ark/tar.h ++++ b/ark/tar.h +@@ -64,6 +64,7 @@ class TarArch : public Arch + + virtual void open(); + virtual void create(); ++ virtual void test(); + + virtual void addFile( const TQStringList & ); + virtual void addDir( const TQString & ); +diff --git a/ark/zip.cpp b/ark/zip.cpp +index 4a647b5..1888d50 100644 +--- a/ark/zip.cpp ++++ b/ark/zip.cpp +@@ -34,6 +34,7 @@ + #include <klocale.h> + #include <kmessagebox.h> + #include <kprocess.h> ++#include <kpassdlg.h> + + // ark includes + #include "zip.h" +@@ -114,6 +115,12 @@ void ZipArch::create() + Arch::Extract | Arch::Delete | Arch::Add | Arch::View ); + } + ++void ZipArch::createPassword() ++{ ++ if( m_password.isEmpty() && ArkSettings::askCreatePassword() ) ++ KPasswordDialog::getNewPassword( m_password, i18n("Warning!\nUsing KGpg for encryption is more secure.\nCancel this dialog or enter password for %1 archiver:").arg(m_archiver_program) ); ++} ++ + void ZipArch::addDir( const TQString & _dirName ) + { + if ( !_dirName.isEmpty() ) +@@ -240,7 +247,7 @@ void ZipArch::unarchFileInternal() + + bool ZipArch::passwordRequired() + { +- return m_lastShellOutput.findRev("unable to get password\n")!=-1 || m_lastShellOutput.endsWith("password inflating\n") || m_lastShellOutput.findRev("password incorrect--reenter:")!=-1 || m_lastShellOutput.endsWith("incorrect password\n"); ++ return m_lastShellOutput.findRev("password:") >= 0 || m_lastShellOutput.findRev("unable to get password\n")!=-1 || m_lastShellOutput.endsWith("password inflating\n") || m_lastShellOutput.findRev("password incorrect--reenter:")!=-1 || m_lastShellOutput.endsWith("incorrect password\n"); + } + + void ZipArch::remove( TQStringList *list ) +@@ -248,6 +255,7 @@ void ZipArch::remove( TQStringList *list ) + if ( !list ) + return; + ++ + KProcess *kp = m_currentProcess = new KProcess; + kp->clearArguments(); + +@@ -274,4 +282,32 @@ void ZipArch::remove( TQStringList *list ) + } + } + ++void ZipArch::test() ++{ ++ clearShellOutput(); ++ ++ KProcess *kp = m_currentProcess = new KProcess; ++ kp->clearArguments(); ++ ++ *kp << m_unarchiver_program << "-t"; ++ ++ if ( !m_password.isEmpty() ) ++ *kp << "-P" << m_password; ++ ++ *kp << m_filename; ++ ++ connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), ++ SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); ++ connect( kp, SIGNAL( processExited(KProcess*) ), ++ SLOT( slotTestExited(KProcess*) ) ); ++ ++ if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) ++ { ++ KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); ++ emit sigTest( false ); ++ } ++} ++ + #include "zip.moc" +diff --git a/ark/zip.h b/ark/zip.h +index 28f61bd..1e31f76 100644 +--- a/ark/zip.h ++++ b/ark/zip.h +@@ -45,6 +45,7 @@ class ZipArch : public Arch + + virtual void open(); + virtual void create(); ++ virtual void test(); + + virtual void addFile( const TQStringList & ); + virtual void addDir( const TQString & ); +@@ -52,6 +53,7 @@ class ZipArch : public Arch + virtual void remove( TQStringList * ); + virtual void unarchFileInternal(); + virtual bool passwordRequired(); ++ virtual void createPassword(); + private: + void setHeaders(); + }; diff --git a/redhat/kdeutils/kdeutils-3.5.13-fix_ark_embedding.patch b/redhat/kdeutils/kdeutils-3.5.13-fix_ark_embedding.patch new file mode 100644 index 000000000..e54e84850 --- /dev/null +++ b/redhat/kdeutils/kdeutils-3.5.13-fix_ark_embedding.patch @@ -0,0 +1,16 @@ +commit 2a1d4a67d148c750266837db16a3e7b34cf13258 +Author: Timothy Pearson <kb9vqf@pearsoncomputing.net> +Date: 1326326096 -0600 + + Allow ark embedding + This closes Bug 670 + +diff --git a/ark/ark_part.desktop b/ark/ark_part.desktop +index f09a772..e62db26 100644 +--- a/ark/ark_part.desktop ++++ b/ark/ark_part.desktop +@@ -133,4 +133,3 @@ Icon=ark + Type=Service + ServiceTypes=KParts/ReadOnlyPart + X-KDE-Library=libarkpart +-Hidden=true diff --git a/redhat/kdeutils/kdeutils-3.5.13-further_organise_menu.patch b/redhat/kdeutils/kdeutils-3.5.13-further_organise_menu.patch new file mode 100644 index 000000000..3cbbe612e --- /dev/null +++ b/redhat/kdeutils/kdeutils-3.5.13-further_organise_menu.patch @@ -0,0 +1,49 @@ +commit b970fc42f21431495c12a97f52e6f0699b173170 +Author: Darrell Anderson <humanreadable@yahoo.com> +Date: 1331779039 -0500 + + Further organize TDE Menu. + +diff --git a/kcalc/kcalc.desktop b/kcalc/kcalc.desktop +index 19ae663..6481922 100644 +--- a/kcalc/kcalc.desktop ++++ b/kcalc/kcalc.desktop +@@ -85,4 +85,4 @@ GenericName[zu]=Umshini wokubala ezenzululwazi + Terminal=false + Type=Application + X-KDE-StartupNotify=true +-Categories=Qt;KDE;Utility;X-KDE-Utilities-Desktop; ++Categories=Qt;KDE;Utility; +diff --git a/kdelirc/irkick/irkick.desktop b/kdelirc/irkick/irkick.desktop +index 24a17b6..2f85103 100644 +--- a/kdelirc/irkick/irkick.desktop ++++ b/kdelirc/irkick/irkick.desktop +@@ -58,7 +58,7 @@ X-KDE-autostart-after=panel + X-KDE-StartupNotify=false + X-DCOP-ServiceType=Unique + X-KDE-autostart-condition=irkickrc:General:AutoStart:false +-Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals; ++Categories=Qt;KDE;Utility; + + Exec=irkick + Icon=irkick +diff --git a/kedit/KEdit.desktop b/kedit/KEdit.desktop +index 0170151..f4e3abc 100644 +--- a/kedit/KEdit.desktop ++++ b/kedit/KEdit.desktop +@@ -79,4 +79,4 @@ Name[xh]=Abahleli Be K + Name[zh_TW]=KDE 編輯器 + X-KDE-StartupNotify=true + X-DCOP-ServiceType=Multi +-Categories=Qt;KDE;Utility;TextEditor; ++Categories=Qt;KDE;TextEditor; +diff --git a/kfloppy/KFloppy.desktop b/kfloppy/KFloppy.desktop +index 113a24d..e1f7a59 100644 +--- a/kfloppy/KFloppy.desktop ++++ b/kfloppy/KFloppy.desktop +@@ -93,4 +93,4 @@ Type=Application + Terminal=false + X-KDE-StartupNotify=true + X-DCOP-ServiceType=Multi +-Categories=Qt;KDE;Utility;X-KDE-Utilities-Peripherals; ++Categories=Qt;KDE;Utility diff --git a/redhat/kdeutils/kdeutils-3.5.13-remove_more_applications.patch b/redhat/kdeutils/kdeutils-3.5.13-remove_more_applications.patch new file mode 100644 index 000000000..108876051 --- /dev/null +++ b/redhat/kdeutils/kdeutils-3.5.13-remove_more_applications.patch @@ -0,0 +1,46 @@ +commit 803f475286c861cb5e7c9fa4f4dfadc5d0900177 +Author: Darrell Anderson <humanreadable@yahoo.com> +Date: 1331690354 -0500 + + Remove "More Applications" from TDE menu. Add Utility category to KEdit. + This partially resolves bug report 653. + +--- a/kdf/kdf.desktop ++++ b/kdf/kdf.desktop +@@ -85,4 +85,4 @@ Terminal=false + DocPath=kdf/index.html + X-KDE-StartupNotify=true + X-DCOP-ServiceType=Multi +-Categories=Qt;KDE;System;X-KDE-More; ++Categories=Qt;KDE;System; +diff --git a/kdf/kwikdisk.desktop b/kdf/kwikdisk.desktop +index 28ca5b5..c723364 100644 +--- a/kdf/kwikdisk.desktop ++++ b/kdf/kwikdisk.desktop +@@ -74,5 +74,5 @@ GenericName[zh_CN]=可移动介质工具 + GenericName[zh_TW]=可移動媒體公用程式 + GenericName[zu]=Umsebenzi Wonozindaba Ogudluzekayo + Terminal=false +-Categories=Qt;KDE;System;X-KDE-More; ++Categories=Qt;KDE;System; + OnlyShowIn=KDE; +diff --git a/kedit/KEdit.desktop b/kedit/KEdit.desktop +index f4e3abc..0170151 100644 +--- a/kedit/KEdit.desktop ++++ b/kedit/KEdit.desktop +@@ -79,4 +79,4 @@ Name[xh]=Abahleli Be K + Name[zh_TW]=KDE 編輯器 + X-KDE-StartupNotify=true + X-DCOP-ServiceType=Multi +-Categories=Qt;KDE;TextEditor; ++Categories=Qt;KDE;Utility;TextEditor; +diff --git a/ktimer/ktimer.desktop b/ktimer/ktimer.desktop +index d34c43b..1d12283 100644 +--- a/ktimer/ktimer.desktop ++++ b/ktimer/ktimer.desktop +@@ -60,4 +60,4 @@ Name[xh]=Umjongi Wexesha + Name[zh_TW]=KDE 計時器 + X-KDE-StartupNotify=true + X-DCOP-ServiceType=Multi +-Categories=Qt;KDE;Utility;X-KDE-More; ++Categories=Qt;KDE;Utility; diff --git a/redhat/kdeutils/kdeutils-3.5.13-reorganize_kcontrol_menu_tree.patch b/redhat/kdeutils/kdeutils-3.5.13-reorganize_kcontrol_menu_tree.patch new file mode 100644 index 000000000..96033e314 --- /dev/null +++ b/redhat/kdeutils/kdeutils-3.5.13-reorganize_kcontrol_menu_tree.patch @@ -0,0 +1,57 @@ +commit 7780bb7b2050cadc6b77d0adc2b0b9629365379c +Author: Darrell Anderson <humanreadable@yahoo.com> +Date: 1331778476 -0500 + + Reorganize KControl menu tree. + * Move former KInfoCenter items -> Hardware/Information. + * Move Laptop Battery -> Hardware. + +diff --git a/kdf/kcmdf.desktop b/kdf/kcmdf.desktop +index 4c2613b..62cc3f6 100644 +--- a/kdf/kcmdf.desktop ++++ b/kdf/kcmdf.desktop +@@ -2,6 +2,7 @@ + X-KDE-ModuleType=Library + X-KDE-Library=kdf + X-KDE-FactoryName=kdf ++X-KDE-ParentApp=kinfocenter + X-KDE-LocalUser=false + Exec=kcmshell kcmdf + Icon=kcmdf +@@ -135,4 +136,4 @@ Comment[zh_CN]=显示挂接设备的磁盘使用率 + Comment[zh_TW]=顯示連接的設備的磁碟使用率 + Comment[zu]=Ikhombisa ukusebenziswa kwediski yamathuluzi okunyuka + +-Categories=Qt;KDE;X-KDE-settings-hardware; ++Categories=Qt;KDE;X-KDE-settings-information; +diff --git a/klaptopdaemon/applnk/laptop.desktop b/klaptopdaemon/applnk/laptop.desktop +index 5c4101c..5a3ce26 100644 +--- a/klaptopdaemon/applnk/laptop.desktop ++++ b/klaptopdaemon/applnk/laptop.desktop +@@ -6,7 +6,7 @@ Exec=kcmshell laptop + Icon=laptop_battery + Type=Application + DocPath=kcontrol/laptop/index.html +-Categories=Qt;KDE;X-KDE-settings-power; ++Categories=Qt;KDE;X-KDE-settings-hardware; + Comment=Laptop Battery + Comment[af]=Draagbare rekenaar Batery + Comment[ar]=بطّاريّة الحاسوب المحمول +diff --git a/klaptopdaemon/applnk/pcmcia.desktop b/klaptopdaemon/applnk/pcmcia.desktop +index f139c2a..a519aec 100644 +--- a/klaptopdaemon/applnk/pcmcia.desktop ++++ b/klaptopdaemon/applnk/pcmcia.desktop +@@ -2,6 +2,7 @@ + X-KDE-ModuleType=Library + X-KDE-Library=laptop + X-KDE-FactoryName=pcmcia ++X-KDE-ParentApp=kinfocenter + Exec=kcmshell pcmcia + Icon=laptop_pcmcia + Type=Application +@@ -81,4 +82,4 @@ Name[pt_BR]=Cartões PCMCIA + Name[ta]= PCMCIA + Name[th]=อุปกรณ์ PCMCIA + +-Categories=Qt;KDE;X-KDE-settings-hardware; ++Categories=Qt;KDE;X-KDE-settings-information; diff --git a/redhat/kdeutils/trinity-kdeutils-3.5.13.spec b/redhat/kdeutils/trinity-kdeutils-3.5.13.spec index 392debefb..5f3a394d0 100755 --- a/redhat/kdeutils/trinity-kdeutils-3.5.13.spec +++ b/redhat/kdeutils/trinity-kdeutils-3.5.13.spec @@ -5,14 +5,15 @@ %endif # TDE 3.5.13 specific building variables +%define tde_appdir %{_datadir}/applications/kde %define tde_docdir %{_docdir}/kde %define tde_includedir %{_includedir}/kde %define tde_libdir %{_libdir}/trinity -Name: trinity-kdeutils +Name: tdeutils Version: 3.5.13 -Release: 5%{?dist}%{?_variant} +Release: 6%{?dist}%{?_variant} License: GPL Summary: TDE Utilities Group: Applications/System @@ -25,13 +26,14 @@ Prefix: %{_prefix} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: kdeutils-%{version}.tar.gz -Source1: klaptop_acpi_helper.pam -Source2: klaptop_acpi_helper.console -Source3: kcmlaptoprc +Source1: klaptop_acpi_helper.pam +Source2: klaptop_acpi_helper.console +Source3: kcmlaptoprc -BuildRequires: tqtinterface -BuildRequires: trinity-arts -BuildRequires: trinity-kdelibs +Obsoletes: trinity-kdeutils < %{version}-%{release} +Provides: trinity-kdeutils = %{version}-%{release} +Obsoletes: trinity-kdeutils-extras < %{version}-%{release} +Provides: trinity-kdeutils-extras = %{version}-%{release} # RedHat / Fedora legacy patches Patch1: kdf-3.0.2-label.patch @@ -39,29 +41,65 @@ Patch1: kdf-3.0.2-label.patch # TDE 3.5.13 RHEL/Fedora patches ## [kdeutils/klaptodaemon] removes dpkg commands Patch2: kdeutils-3.5.13-klaptopdaemon_dpkg_command.patch +## [tdeutils] Allow ark embedding [Bug #670] [Commit #2a1d4a67] +Patch3: kdeutils-3.5.13-fix_ark_embedding.patch +## [tdeutils] Remove "More Applications" from TDE menu. Add Utility category to KEdit. [Bug #653] [Commit #803f4752] +Patch4: kdeutils-3.5.13-remove_more_applications.patch +## [tdeutils] Reorganize KControl menu tree. [Commit #7780bb7b] +## * Move former KInfoCenter items -> Hardware/Information. +## * Move Laptop Battery -> Hardware. +Patch5: kdeutils-3.5.13-reorganize_kcontrol_menu_tree.patch +## [tdeutils] Further organize TDE Menu. [Commit #b970fc42] +Patch6: kdeutils-3.5.13-further_organise_menu.patch +## [tdeutils] [Ark] Repairs and extensions [Bug #1030] [Commit #1c84948d] +## Added support for Arj +## Added support for check archives +## Added support for password processing +## Fix show broken filenames into real UTF-8 +Patch7: kdeutils-3.5.13-ark_repairs_and_extensions.patch -Requires(post): /sbin/ldconfig -Requires(postun): /sbin/ldconfig +BuildRequires: tqtinterface-devel +BuildRequires: trinity-arts-devel +BuildRequires: tdelibs-devel +BuildRequires: autoconf automake libtool m4 +BuildRequires: gettext +BuildRequires: net-snmp-devel +BuildRequires: python-devel +BuildRequires: gmp-devel -Requires: tqtinterface -Requires: trinity-kdelibs - -BuildRequires: autoconf automake libtool m4 -BuildRequires: gettext -BuildRequires: net-snmp-devel -BuildRequires: python-devel -BuildRequires: gmp-devel %if 0%{?fedora} > 4 || 0%{?rhel} > 4 -BuildRequires: libXScrnSaver-devel libXtst-devel +BuildRequires: libXScrnSaver-devel libXtst-devel %endif %if 0%{?fedora} -BuildRequires: xmms-devel +BuildRequires: xmms-devel %endif -%define superkaramba_ver 0.39 -Obsoletes: superkaramba < 0:%{superkaramba_ver} -Provides: superkaramba = 0:%{superkaramba_ver} +Requires: trinity-ark = %{version}-%{release} +Requires: trinity-kcalc = %{version}-%{release} +Requires: trinity-kcharselect = %{version}-%{release} +Requires: trinity-kdelirc = %{version}-%{release} +Requires: trinity-kdessh = %{version}-%{release} +Requires: trinity-kdf = %{version}-%{release} +Requires: trinity-kedit = %{version}-%{release} +Requires: trinity-kfloppy = %{version}-%{release} +Requires: trinity-kgpg = %{version}-%{release} +Requires: trinity-khexedit = %{version}-%{release} +Requires: trinity-kjots = %{version}-%{release} +Requires: trinity-klaptopdaemon = %{version}-%{release} +Requires: trinity-kmilo = %{version}-%{release} +Requires: trinity-kmilo-legacy = %{version}-%{release} +Requires: trinity-kregexpeditor = %{version}-%{release} +Requires: trinity-ksim = %{version}-%{release} +Requires: trinity-ktimer = %{version}-%{release} +Requires: trinity-kwalletmanager = %{version}-%{release} +Requires: trinity-superkaramba = %{version}-%{release} + +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + +%files + %description Utilities for the Trinity Desktop Environment, including: @@ -76,41 +114,820 @@ Utilities for the Trinity Desktop Environment, including: * kgpg (gpg gui) * khexedit (hex editor) * kjots (note taker) + * klaptopdaemon (battery monitoring and management for laptops); + * kmilo * kregexpeditor (regular expression editor) + * ksim (system information monitor); * ktimer (task scheduler) * kwikdisk (removable media utility) +########## + +%package -n trinity-ark +Summary: graphical archiving tool for Trinity +Group: Applications/Utilities +#Requires: ncompress +Requires: unzip, zip +#Requires: zoo +Requires: bzip2 +#Requires: p7zip +Requires: xz +Requires: lzma +#Requires: rar, unrar + +%description -n trinity-ark +Ark is a graphical program for managing various archive formats within the +TDE environment. Archives can be viewed, extracted, created and modified +from within Ark. + +The program can handle various formats such as tar, gzip, bzip2, zip, rar and +lha (if appropriate command-line programs are installed). + +Ark can work closely with Konqueror in the KDE environment to handle archives, +if you install the Konqueror Integration plugin available in the konq-plugins +package. + +%files -n trinity-ark +%defattr(-,root,root,-) +%{_bindir}/ark +%{tde_libdir}/ark.la +%{tde_libdir}/ark.so +%{tde_libdir}/libarkpart.la +%{tde_libdir}/libarkpart.so +%{_libdir}/lib[kt]deinit_ark.so +%{tde_appdir}/ark.desktop +%{_datadir}/apps/ark/ +%{_datadir}/config.kcfg/ark.kcfg +%{_datadir}/icons/hicolor/*/apps/ark.png +%{_datadir}/icons/hicolor/scalable/apps/ark.svgz +%{_datadir}/services/ark_part.desktop +%{tde_docdir}/HTML/en/ark/ + +%post -n trinity-ark +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-ark +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kcalc +Summary: calculator for Trinity +Group: Applications/Utilities + +%description -n trinity-kcalc +KCalc is TDE's scientific calculator. + +It provides: +* trigonometric functions, logic operations, and statistical calculations +* easy cut and paste of numbers from/into its display +* a results-stack which lets you conveniently recall previous results +* configurable precision, and number of digits after the period + +%files -n trinity-kcalc +%defattr(-,root,root,-) +%{_bindir}/kcalc +%{tde_libdir}/kcalc.la +%{tde_libdir}/kcalc.so +%{_libdir}/lib[kt]deinit_kcalc.so +%{tde_appdir}/kcalc.desktop +%{_datadir}/apps/kcalc/ +%{_datadir}/apps/kconf_update/kcalcrc.upd +%{_datadir}/config.kcfg/kcalc.kcfg +%{_datadir}/icons/hicolor/*/apps/kcalc.png +%{_datadir}/icons/hicolor/scalable/apps/kcalc.svgz +%{tde_docdir}/HTML/en/kcalc/ + +%post -n trinity-kcalc +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kcalc +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kcharselect +Summary: character selector for Trinity +Group: Applications/Utilities + +%description -n trinity-kcharselect +A character set selector for TDE. + +%files -n trinity-kcharselect +%defattr(-,root,root,-) +%{_bindir}/kcharselect +%{tde_libdir}/kcharselect_panelapplet.la +%{tde_libdir}/kcharselect_panelapplet.so +%{tde_appdir}/KCharSelect.desktop +%{_datadir}/apps/kcharselect/ +%{_datadir}/apps/kconf_update/kcharselect.upd +%{_datadir}/apps/kicker/applets/kcharselectapplet.desktop +%{_datadir}/icons/hicolor/*/apps/kcharselect.png +%{tde_docdir}/HTML/en/kcharselect/ + +%post -n trinity-kcharselect +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kcharselect +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kdelirc +Summary: infrared control for Trinity +Group: Applications/Utilities + +%description -n trinity-kdelirc +This is a frontend for the LIRC suite to use infrared devices with TDE. + +%files -n trinity-kdelirc +%defattr(-,root,root,-) +%{_bindir}/irkick +%{tde_libdir}/irkick.la +%{tde_libdir}/irkick.so +%{tde_libdir}/kcm_kcmlirc.la +%{tde_libdir}/kcm_kcmlirc.so +%{_libdir}/lib[kt]deinit_irkick.so +%{tde_appdir}/irkick.desktop +%{tde_appdir}/kcmlirc.desktop +%{_datadir}/apps/irkick/ +%{_datadir}/apps/profiles/klauncher.profile.xml +%{_datadir}/apps/profiles/konqueror.profile.xml +%{_datadir}/apps/profiles/noatun.profile.xml +%{_datadir}/apps/profiles/profile.dtd +%{_datadir}/apps/remotes/RM-0010.remote.xml +%{_datadir}/apps/remotes/cimr100.remote.xml +%{_datadir}/apps/remotes/hauppauge.remote.xml +%{_datadir}/apps/remotes/remote.dtd +%{_datadir}/apps/remotes/sherwood.remote.xml +%{_datadir}/apps/remotes/sonytv.remote.xml +%{_datadir}/autostart/irkick.desktop +%{_datadir}/icons/hicolor/*/apps/irkick.png +%{_datadir}/icons/locolor/*/apps/irkick.png +%{tde_docdir}/HTML/en/irkick/ +%{tde_docdir}/HTML/en/kcmlirc/ + +%post -n trinity-kdelirc +/sbin/ldconfig +for f in hicolor locolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kdelirc +/sbin/ldconfig +for f in hicolor locolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kdessh +Summary: ssh frontend for Trinity +Group: Applications/Utilities +Requires: openssh-clients + +%description -n trinity-kdessh +This package contains TDE's frontend for ssh. + +%files -n trinity-kdessh +%defattr(-,root,root,-) +%{_bindir}/kdessh + +########## + +%package -n trinity-kdf +Summary: disk space utility for Trinity +Group: Applications/Utilities + +%description -n trinity-kdf +KDiskFree displays the available file devices (hard drive partitions, floppy +and CD drives, etc.) along with information on their capacity, free space, type +and mount point. It also allows you to mount and unmount drives and view them +in a file manager. + +%files -n trinity-kdf +%defattr(-,root,root,-) +%{_bindir}/kdf +%{_bindir}/kwikdisk +%{tde_libdir}/kcm_kdf.la +%{tde_libdir}/kcm_kdf.so +%{tde_appdir}/kcmdf.desktop +%{tde_appdir}/kdf.desktop +%{tde_appdir}/kwikdisk.desktop +%{_datadir}/apps/kdf/ +%{_datadir}/icons/crystalsvg/*/apps/kcmdf.png +%{_datadir}/icons/hicolor/*/apps/kdf.png +%{_datadir}/icons/hicolor/*/apps/kwikdisk.png +%{tde_docdir}/HTML/en/kdf/ +%{tde_docdir}/HTML/en/kinfocenter/blockdevices/ + +%post -n trinity-kdf +for f in crystalsvg hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kdf +for f in crystalsvg hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kedit +Summary: basic text editor for Trinity +Group: Applications/Utilities + +%description -n trinity-kedit +A simple text editor for TDE. + +It can be used with Konqueror for text and configuration file browsing. +KEdit also serves well for creating small plain text documents. KEdit's +functionality will intentionally remain rather limited to ensure a +reasonably fast start. + +%files -n trinity-kedit +%defattr(-,root,root,-) +%{_bindir}/kedit +%{tde_libdir}/kedit.la +%{tde_libdir}/kedit.so +%{_libdir}/lib[kt]deinit_kedit.so +%{tde_appdir}/KEdit.desktop +%{_datadir}/apps/kedit/keditui.rc +%{_datadir}/config.kcfg/kedit.kcfg +%{_datadir}/icons/hicolor/*/apps/kedit.png +%{tde_docdir}/HTML/en/kedit/ + +%post -n trinity-kedit +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kedit +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kfloppy +Summary: floppy formatter for Trinity +Group: Applications/Utilities +Requires: dosfstools + +%description -n trinity-kfloppy +Kfloppy is a utility that provides a straightforward graphical means +to format 3.5" and 5.25" floppy disks. + +%files -n trinity-kfloppy +%defattr(-,root,root,-) +%{_bindir}/kfloppy +%{tde_appdir}/KFloppy.desktop +%{_datadir}/apps/konqueror/servicemenus/floppy_format.desktop +%{_datadir}/icons/hicolor/*/apps/kfloppy.png +%{tde_docdir}/HTML/en/kfloppy/ + +%post -n trinity-kfloppy +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kfloppy +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kgpg +Summary: GnuPG frontend for Trinity +Group: Applications/Utilities +Requires: trinity-konsole +Requires: gnupg + +%description -n trinity-kgpg +Kgpg is a frontend for GNU Privacy Guard (GnuPG). It provides file +encryption, file decryption and key management. + +Features: +* an editor mode for easily and quickly encrypting or decrypting a file + or message which is typed, copied, pasted or dragged into the editor, + or which is double-clicked in the file manager +* Konqueror integration for encrypting or decrypting files +* a panel applet for encrypting / decrypting files or the clipboard + contents, etc. +* key management functions (generation, import, export, deletion and + signing) +* decrypting clipboard contents, including integration with Klipper + +%files -n trinity-kgpg +%defattr(-,root,root,-) +%{_bindir}/kgpg +%{tde_appdir}/kgpg.desktop +%{_datadir}/apps/kgpg/ +%{_datadir}/apps/konqueror/servicemenus/encryptfile.desktop +%{_datadir}/apps/konqueror/servicemenus/encryptfolder.desktop +%{_datadir}/autostart/kgpg.desktop +%{_datadir}/config.kcfg/kgpg.kcfg +%{_datadir}/icons/hicolor/*/apps/kgpg.png +%{tde_docdir}/HTML/en/kgpg/ + +%post -n trinity-kgpg +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kgpg +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-khexedit +Summary: Trinity hex editor +Group: Applications/Utilities + +%description -n trinity-khexedit +KHexEdit is an editor for the raw data of binary files. It includes +find/replace functions, bookmarks, many configuration options, drag and drop +support and other powerful features. + +%files -n trinity-khexedit +%defattr(-,root,root,-) +%{_bindir}/khexedit +%{tde_libdir}/libkbyteseditwidget.la +%{tde_libdir}/libkbyteseditwidget.so +%{tde_libdir}/libkhexedit2part.la +%{tde_libdir}/libkhexedit2part.so +%{_libdir}/libkhexeditcommon.so.* +%{tde_appdir}/khexedit.desktop +%{_datadir}/apps/khexedit/ +%{_datadir}/apps/khexedit2part/khexedit2partui.rc +%{_datadir}/icons/hicolor/*/apps/khexedit.png +%{_datadir}/services/kbyteseditwidget.desktop +%{_datadir}/services/khexedit2part.desktop +%{tde_docdir}/HTML/en/khexedit/ + +%post -n trinity-khexedit +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-khexedit +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kjots +Summary: note taking utility for Trinity +Group: Applications/Utilities + +%description -n trinity-kjots +Kjots is a small note taker program. Name and idea are taken from the jots +program included in the tkgoodstuff package. + +%files -n trinity-kjots +%defattr(-,root,root,-) +%{_bindir}/kjots +%{tde_appdir}/Kjots.desktop +%{_datadir}/apps/kjots/ +%{_datadir}/config.kcfg/kjots.kcfg +%{_datadir}/icons/hicolor/*/apps/kjots.png +%{tde_docdir}/HTML/en/kjots/ + +%post -n trinity-kjots +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kjots +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-klaptopdaemon +Summary: battery monitoring and management for laptops using Trinity +Group: Applications/Utilities +Requires: pm-utils +Requires: usermode + +%description -n trinity-klaptopdaemon +This package contains utilities to monitor batteries and configure +power management, for laptops, from within TDE. + +%files -n trinity-klaptopdaemon +%defattr(-,root,root,-) +%{_bindir}/klaptop_acpi_helper +%{_bindir}/klaptop_check +%{tde_libdir}/kcm_laptop.la +%{tde_libdir}/kcm_laptop.so +%{tde_libdir}/kded_klaptopdaemon.la +%{tde_libdir}/kded_klaptopdaemon.so +%{_libdir}/libkcmlaptop.so.* +%{tde_appdir}/laptop.desktop +%{tde_appdir}/pcmcia.desktop +%{_datadir}/apps/klaptopdaemon/ +%{_datadir}/icons/crystalsvg/*/apps/laptop_battery.png +%{_datadir}/icons/crystalsvg/*/apps/laptop_pcmcia.png +%{_datadir}/icons/crystalsvg/scalable/apps/laptop_battery.svgz +%{_datadir}/services/kded/klaptopdaemon.desktop +%{tde_docdir}/HTML/en/kcontrol/kcmlowbatcrit/ +%{tde_docdir}/HTML/en/kcontrol/kcmlowbatwarn/ +%{tde_docdir}/HTML/en/kcontrol/laptop/ +%{tde_docdir}/HTML/en/kcontrol/powerctrl/ + +# RHEL/Fedora specific +%{_sysconfdir}/pam.d/klaptop_acpi_helper +%attr(644,root,root) %{_sysconfdir}/security/console.apps/klaptop_acpi_helper +%{_sbindir}/klaptop_acpi_helper +%config %{_datadir}/config/kcmlaptoprc + +%post -n trinity-klaptopdaemon +/sbin/ldconfig +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-klaptopdaemon +/sbin/ldconfig +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kmilo +Summary: laptop special keys support for Trinity +Group: Applications/Utilities + +%description -n trinity-kmilo +KMilo lets you use the special keys on some keyboards and laptops. + +Usually this includes volume keys and other features. Currently, KMilo +comes with plugins for Powerbooks, Thinkpads, Vaios and generic keyboards +with special keys. + +%files -n trinity-kmilo +%defattr(-,root,root,-) +%{tde_libdir}/kded_kmilod.la +%{tde_libdir}/kded_kmilod.so +%{tde_libdir}/kmilo_generic.la +%{tde_libdir}/kmilo_generic.so +%{_libdir}/libkmilo.so.* +%{_datadir}/services/kded/kmilod.desktop +%{_datadir}/services/kmilo/kmilo_generic.desktop +%{_datadir}/servicetypes/kmilo/kmilopluginsvc.desktop + +%post -n trinity-kmilo +/sbin/ldconfig + +%postun -n trinity-kmilo +/sbin/ldconfig + +########## + +%package -n trinity-kmilo-legacy +Summary: non-standard plugins for KMilo +Group: Applications/Utilities +Requires: trinity-kmilo = %{version}-%{release} + +%description -n trinity-kmilo-legacy +KMilo lets you use the special keys on some keyboards and laptops. + +Usually this includes volume keys and other features. Currently, KMilo +comes with plugins for Powerbooks, Thinkpads and Vaios. + +The intention is that all laptops work with the generic kmilo +plugin, if you need this package please file a bug. + +%files -n trinity-kmilo-legacy +%defattr(-,root,root,-) +%{tde_libdir}/kcm_kvaio.la +%{tde_libdir}/kcm_kvaio.so +%{tde_libdir}/kcm_thinkpad.la +%{tde_libdir}/kcm_thinkpad.so +%{tde_libdir}/kmilo_asus.la +%{tde_libdir}/kmilo_asus.so +%{tde_libdir}/kmilo_delli8k.la +%{tde_libdir}/kmilo_delli8k.so +%{tde_libdir}/kmilo_kvaio.la +%{tde_libdir}/kmilo_kvaio.so +%{tde_libdir}/kmilo_thinkpad.la +%{tde_libdir}/kmilo_thinkpad.so +%{tde_appdir}/kvaio.desktop +%{tde_appdir}/thinkpad.desktop +%{_datadir}/services/kmilo/kmilo_asus.desktop +%{_datadir}/services/kmilo/kmilo_delli8k.desktop +%{_datadir}/services/kmilo/kmilo_kvaio.desktop +%{_datadir}/services/kmilo/kmilo_thinkpad.desktop + +########## + +%package -n trinity-kregexpeditor +Summary: graphical regular expression editor plugin for Trinity +Group: Applications/Utilities + +%description -n trinity-kregexpeditor +This package contains a graphical regular expression editor plugin for use +with TDE. It let you draw your regular expression in an unambiguous way. + +%files -n trinity-kregexpeditor +%defattr(-,root,root,-) +%{_bindir}/kregexpeditor +%{tde_libdir}/libkregexpeditorgui.la +%{tde_libdir}/libkregexpeditorgui.so +%{_libdir}/libkregexpeditorcommon.so.* +%{tde_appdir}/kregexpeditor.desktop +%{_datadir}/apps/kregexpeditor/ +%{_datadir}/icons/hicolor/*/apps/kregexpeditor.png +%{_datadir}/services/kregexpeditorgui.desktop +%{tde_docdir}/HTML/en/KRegExpEditor/ + +%post -n trinity-kregexpeditor +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kregexpeditor +/sbin/ldconfig +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-ksim +Summary: system information monitor for Trinity +Group: Applications/Utilities + +%description -n trinity-ksim +KSim is a system monitor app which has its own plugin system with support +for GKrellm skins. It allows users to follow uptime, memory usage, network +connections, power, etc. + +%files -n trinity-ksim +%defattr(-,root,root,-) +%config %{_datadir}/config/ksim_panelextensionrc +%{tde_libdir}/ksim_*.la +%{tde_libdir}/ksim_*.so +%{_libdir}/libksimcore.so.* +%{_datadir}/apps/kicker/extensions/ksim.desktop +%{_datadir}/apps/ksim/ +%{tde_docdir}/HTML/en/ksim/ +%{_datadir}/icons/crystalsvg/*/apps/ksim.png +%{_datadir}/icons/crystalsvg/*/devices/ksim_cpu.png + +%post -n trinity-ksim +/sbin/ldconfig +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done + +%postun -n trinity-ksim +/sbin/ldconfig +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done + +########## + +%package -n trinity-ktimer +Summary: timer utility for Trinity +Group: Applications/Utilities + +%description -n trinity-ktimer +This is a timer application for TDE. It allows you to execute commands after +a certain amount of time. It supports looping commands as well as delayed +command execution. + +%files -n trinity-ktimer +%defattr(-,root,root,-) +%{_bindir}/ktimer +%{tde_appdir}/ktimer.desktop +%{_datadir}/icons/hicolor/*/apps/ktimer.png +%{tde_docdir}/HTML/en/ktimer/ + +%post -n trinity-ktimer +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-ktimer +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-kwalletmanager +Summary: wallet manager for Trinity +Group: Applications/Utilities + +%description -n trinity-kwalletmanager +This program keeps various wallets for any kind of data that the user can +store encrypted with passwords and can also serve as a password manager that +keeps a master password to all wallets. + +%files -n trinity-kwalletmanager +%defattr(-,root,root,-) +%{_bindir}/kwalletmanager +%{tde_libdir}/kcm_kwallet.la +%{tde_libdir}/kcm_kwallet.so +%{tde_appdir}/kwalletconfig.desktop +%{tde_appdir}/kwalletmanager.desktop +%{tde_appdir}/kwalletmanager-kwalletd.desktop +%{_datadir}/apps/kwalletmanager/ +%{_datadir}/icons/hicolor/*/apps/kwalletmanager.png +%{_datadir}/services/kwallet_config.desktop +%{_datadir}/services/kwalletmanager_show.desktop +%{tde_docdir}/HTML/en/kwallet/ + +%post -n trinity-kwalletmanager +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +%postun -n trinity-kwalletmanager +for f in hicolor ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done +update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : + +########## + +%package -n trinity-superkaramba +Summary: a program based on karamba improving the eyecandy of TDE +Group: Applications/Utilities + +%description -n trinity-superkaramba +SuperKaramba is a tool based on karamba that allows anyone to easily create +and run little interactive widgets on a TDE desktop. Widgets are defined in a +simple text file and can be augmented with Python code to make them +interactive. + +Here are just some examples of the things that can be done: +* Display system information such as CPU Usage, MP3 playing, etc. +* Create cool custom toolbars that work any way imaginable. +* Create little games or virtual pets that live on your desktop. +* Display information from the internet, such as weather and headlines. + +%files -n trinity-superkaramba +%defattr(-,root,root,-) +%{_bindir}/superkaramba +%{_datadir}/applnk/Utilities/superkaramba.desktop +%{_datadir}/apps/superkaramba/superkarambaui.rc +%{_datadir}/icons/crystalsvg/*/apps/superkaramba.png +%{_datadir}/icons/crystalsvg/*/mimetypes/superkaramba_theme.png +%{_datadir}/icons/crystalsvg/scalable/apps/superkaramba.svgz +%{_datadir}/icons/crystalsvg/scalable/mimetypes/superkaramba_theme.svgz +%{_datadir}/mimelnk/application/x-superkaramba.desktop +%{tde_docdir}/HTML/en/superkaramba/ + +%post -n trinity-superkaramba +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done + +%postun -n trinity-superkaramba +for f in crystalsvg ; do + touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: + gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: +done + +########## # afaik, nobody BR's it, and it pulls kdeutils into multilib -- Rex %package devel -Summary: Development files for %{name} -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: %{name}-extras = %{version}-%{release} -Requires: trinity-kdelibs-devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: tdelibs-devel + +Obsoletes: trinity-kdeutils-devel < %{version}-%{release} +Provides: trinity-kdeutils-devel = %{version}-%{release} + %description devel Development files for %{name}. -%package extras -Summary: Extras packages from %{name} -Group: Applications/Internet -Requires: %{name} = %{version}-%{release} -%if 0%{?fedora} > 5 || 0%{?rhel} > 4 -Requires: pm-utils -%endif -Requires: usermode -%description extras -More Utilities for the K Desktop Environment: - * kmilo - * ksim (system information monitor); - * klaptopdaemon (battery monitoring and management for laptops); +%files devel +%defattr(-,root,root,-) +%{tde_includedir}/* +%{_libdir}/libkcmlaptop.la +%{_libdir}/libkcmlaptop.so +%{_libdir}/lib[kt]deinit_ark.la +%{_libdir}/lib[kt]deinit_irkick.la +%{_libdir}/lib[kt]deinit_kcalc.la +%{_libdir}/lib[kt]deinit_kedit.la +%{_libdir}/libkmilo.la +%{_libdir}/libkmilo.so +%{_libdir}/libkregexpeditorcommon.la +%{_libdir}/libkregexpeditorcommon.so +%{_libdir}/libksimcore.la +%{_libdir}/libksimcore.so +%{_libdir}/libkhexeditcommon.la +%{_libdir}/libkhexeditcommon.so + +%post devel +/sbin/ldconfig +%postun devel +/sbin/ldconfig + +########## %prep %setup -q -n kdeutils %patch1 -p1 -b .label %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 # Ugly hack to modify TQT include directory inside autoconf files. # If TQT detection fails, it fallbacks to TQT4 instead of TQT3 ! @@ -156,8 +973,6 @@ for i in kcalc kregexpeditor Kjots ktimer kdf kcmdf ksim KFloppy KEdit \ done ## File lists -# locale's -%find_lang %{name} || touch %{name}.lang # HTML (1.0) HTML_DIR=$(kde-config --expandvars --install html) if [ -d %{buildroot}$HTML_DIR ]; then @@ -198,150 +1013,16 @@ popd %__rm -rf %{?buildroot} -%post -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%postun -/sbin/ldconfig -for f in crystalsvg hicolor locolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done -update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || : - -%post extras -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done - -%postun extras -/sbin/ldconfig -for f in crystalsvg hicolor ; do - touch --no-create %{_datadir}/icons/$f 2> /dev/null ||: - gtk-update-icon-cache -q %{_datadir}/icons/$f 2> /dev/null ||: -done - - -%files extras -%defattr(-,root,root,-) -# kmilo -%{tde_libdir}/kded_kmilod.* -%{tde_libdir}/kmilo* -%{_libdir}/libkmilo.la -%{_libdir}/libkmilo.so.* -%{_datadir}/services/kded/kmilod.desktop -%{_datadir}/services/kmilo -%{_datadir}/servicetypes/kmilo - -# ksim -%doc %{tde_docdir}/HTML/*/ksim/ -%{tde_libdir}/ksim* -%{_libdir}/libksimcore.la -%{_libdir}/libksimcore.so.* -%{_datadir}/apps/kicker/extensions/ksim.desktop -%{_datadir}/apps/ksim/ -%config %{_datadir}/config/ksim_panelextensionrc -%{_datadir}/icons/crystalsvg/??x??/apps/ksim.png -%{_datadir}/icons/crystalsvg/16x16/devices/ksim_cpu.png - -# klaptop -%doc %{tde_docdir}/HTML/en/kcontrol -%{_sysconfdir}/pam.d/klaptop_acpi_helper -%attr(644,root,root) %{_sysconfdir}/security/console.apps/klaptop_acpi_helper -%{_bindir}/klaptop* -%{tde_libdir}/kded_klaptopdaemon.* -%{_sbindir}/klaptop_acpi_helper -%{_datadir}/apps/klaptopdaemon -%{_datadir}/services/kded/klaptopdaemon.desktop -%{tde_libdir}/kcm_laptop.* -%{_libdir}/libkcmlaptop.* -%{_datadir}/applications/kde/laptop.desktop -%config %{_datadir}/config/kcmlaptoprc -%{_datadir}/icons/crystalsvg/128x128/apps/laptop_battery.png -%{_datadir}/icons/crystalsvg/??x??/apps/laptop_battery.png -%{_datadir}/icons/crystalsvg/scalable/apps/laptop_battery.svgz - - -%files -f %{name}.lang -%defattr(-,root,root,-) - -# kmilo -%exclude %{tde_libdir}/kded_kmilod.* -%exclude %{tde_libdir}/kmilo* -%exclude %{_libdir}/libkmilo.la -%exclude %{_libdir}/libkmilo.so.* -%exclude %{_datadir}/services/kded/kmilod.desktop -%exclude %{_datadir}/services/kmilo -%exclude %{_datadir}/servicetypes/kmilo - -# ksim -%exclude %{tde_docdir}/HTML/*/ksim/ -%exclude %{tde_libdir}/ksim* -%exclude %{_libdir}/libksimcore.la -%exclude %{_libdir}/libksimcore.so.* -%exclude %{_datadir}/apps/kicker/extensions/ksim.desktop -%exclude %{_datadir}/apps/ksim/ -%exclude %{_datadir}/config/ksim_panelextensionrc -%exclude %{_datadir}/icons/crystalsvg/??x??/apps/ksim.png -%exclude %{_datadir}/icons/crystalsvg/16x16/devices/ksim_cpu.png - -# klaptop -%exclude %{_sysconfdir}/pam.d/klaptop_acpi_helper -%exclude %{_sysconfdir}/security/console.apps/klaptop_acpi_helper -%exclude %{_bindir}/klaptop* -%exclude %{tde_libdir}/kded_klaptopdaemon.* -%exclude %{_sbindir}/klaptop_acpi_helper -%exclude %{_datadir}/apps/klaptopdaemon -%exclude %{_datadir}/services/kded/klaptopdaemon.desktop -%exclude %{tde_libdir}/kcm_laptop.* -%exclude %{_libdir}/libkcmlaptop.* -%exclude %{_datadir}/applications/kde/laptop.desktop -%exclude %{_datadir}/config/kcmlaptoprc -%exclude %{tde_docdir}/HTML/en/kcontrol/ -%exclude %{_datadir}/icons/crystalsvg/128x128/apps/laptop_battery.png -%exclude %{_datadir}/icons/crystalsvg/??x??/apps/laptop_battery.png -%exclude %{_datadir}/icons/crystalsvg/scalable/apps/laptop_battery.svgz - -%attr(644,root,root) %{_sysconfdir}/security/console.apps/* -%attr(644,root,root) %{_sysconfdir}/pam.d/* -%{_bindir}/* -%{_sbindir}/* -%{tde_libdir}/* -%{_libdir}/*.la -%{_libdir}/libkdeinit*.so -%{_libdir}/lib*.so.* -%{_datadir}/icons/*/*/*/* -%{_datadir}/apps/* -%config %{_datadir}/config/* -%{_datadir}/config.kcfg/* -%{_datadir}/services/* -%{_datadir}/servicetypes/* -%{_datadir}/applications/kde/* -%if 0%{?rhel} >= 5 || 0%{?fedora} -%{_datadir}/applnk/Utilities/* -%{_datadir}/mimelnk/application/* -%endif -%{_datadir}/autostart/* -%doc %lang(en) %{tde_docdir}/HTML/en/* - -%files devel -%defattr(-,root,root,-) -%{tde_includedir}/* -%{_libdir}/libkcmlaptop.so -%{_libdir}/libkhexeditcommon.so -%{_libdir}/libkmilo.so -%{_libdir}/libkregexpeditorcommon.so -%{_libdir}/libksimcore.so - %changelog +* Fri Jun 22 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.13-6 +- Split in several packages +- Allow ark embedding [Bug #670] [Commit #2a1d4a67] +- Remove "More Applications" from TDE menu. Add Utility category to KEdit. [Bug #653] [Commit #803f4752] +- [tdeutils] Reorganize KControl menu tree. [Commit #7780bb7b] +- Further organize TDE Menu. [Commit #b970fc42] +- [Ark] Repairs and extensions [Bug #1030] [Commit #1c84948d] + * Fri Nov 25 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.13-5 - Fix HTML directory location |