summaryrefslogtreecommitdiffstats
path: root/redhat/kdelibs
diff options
context:
space:
mode:
authorFrancois Andriot <francois.andriot@free.fr>2012-06-23 10:25:54 +0200
committerFrancois Andriot <francois.andriot@free.fr>2012-06-23 10:25:54 +0200
commitc5be5e13a14ad51c59c496d407c7d7c8e7fd8540 (patch)
tree40a256e66579ffd00df756fc091249234ff66aec /redhat/kdelibs
parentd5d98e581ca554dba936ea8405d1ecf5fe8931c4 (diff)
downloadtde-packaging-c5be5e13a14ad51c59c496d407c7d7c8e7fd8540.tar.gz
tde-packaging-c5be5e13a14ad51c59c496d407c7d7c8e7fd8540.zip
RHEL/Fedora: updates kdelibs
Diffstat (limited to 'redhat/kdelibs')
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-add_dynamic_label_to_kpassword.patch139
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-add_readonly_to_tde_application.patch248
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_build_kspell2.patch27
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_composition_extension_detection.patch159
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_creation_of_profile_directory.patch12
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_konq_filter.patch83
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_ktempfile_special_bits.patch27
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_slide_drawing.patch52
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_tdesu_internal_pathing.patch33
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-fix_x11_threading_when_kinit_is_used.patch20
-rw-r--r--redhat/kdelibs/kdelibs-3.5.13-reduce_more_applications.patch41
-rwxr-xr-xredhat/kdelibs/trinity-kdelibs-3.5.13.spec295
12 files changed, 1013 insertions, 123 deletions
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