From d8e1ce857bedb9d018ae0918b4c90686d604c2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Andriot?= Date: Mon, 24 Jun 2013 19:58:32 +0200 Subject: RPM Packaging: add 3.5.13.2 build patches --- .../tdebase/tdebase-3.5.13.2-suspend_unmount.patch | 152 +++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 redhat/tdebase/tdebase-3.5.13.2-suspend_unmount.patch (limited to 'redhat/tdebase/tdebase-3.5.13.2-suspend_unmount.patch') diff --git a/redhat/tdebase/tdebase-3.5.13.2-suspend_unmount.patch b/redhat/tdebase/tdebase-3.5.13.2-suspend_unmount.patch new file mode 100644 index 000000000..5b8264eb0 --- /dev/null +++ b/redhat/tdebase/tdebase-3.5.13.2-suspend_unmount.patch @@ -0,0 +1,152 @@ +--- ./kioslave/media/libmediacommon/medium.cpp.ori 2013-05-08 22:57:09.317384423 +0200 ++++ ./kioslave/media/libmediacommon/medium.cpp 2013-05-08 22:57:36.730837358 +0200 +@@ -44,6 +44,7 @@ + loadUserLabel(); + + m_halmounted = false; ++ m_isHotplug = false; + } + + Medium::Medium() +@@ -65,6 +66,7 @@ + m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */ + + m_halmounted = false; ++ m_isHotplug = false; + } + + const Medium Medium::create(const TQStringList &properties) +--- ./kioslave/media/libmediacommon/medium.h.ORI 2013-05-08 22:59:10.772959829 +0200 ++++ ./kioslave/media/libmediacommon/medium.h 2013-05-08 22:59:56.602044404 +0200 +@@ -92,6 +92,9 @@ + void setHalMounted(bool flag) const { m_halmounted = flag; } + bool halMounted() const { return m_halmounted; } + ++ void setIsHotplug( bool state ) { m_isHotplug = state; } ++ bool isHotplug() const { return m_isHotplug; } ++ + //private: + Medium(); + +@@ -100,6 +103,8 @@ + + TQStringList m_properties; + mutable bool m_halmounted; ++ ++ bool m_isHotplug; + + friend class TQValueListNode; + }; +--- ./kioslave/media/mediamanager/mediamanager.cpp.ori 2013-05-08 23:00:39.673183801 +0200 ++++ ./kioslave/media/mediamanager/mediamanager.cpp 2013-05-08 23:04:47.639224260 +0200 +@@ -354,6 +354,57 @@ + emit mediumChanged(name); + } + ++TQString MediaManager::unmountAllSuspend() ++{ ++ TQPtrList list = m_mediaList.list(); ++ ++ TQPtrList::const_iterator it = list.begin(); ++ TQPtrList::const_iterator end = list.end(); ++ ++ TQString result; ++ ++ for (; it!=end; ++it) ++ { ++ if ( (*it)->isMounted() && (*it)->isHotplug() ) ++ { ++ TQString tmp = unmount( (*it)->id() ); ++ if ( !tmp.isEmpty() ) { // umount failed ++ result = tmp; ++ } else { ++ m_suspendResumeMountList.append( (*it)->id() ); ++ } ++ } ++ } ++ ++ // return last error ++ return result; ++} ++ ++TQString MediaManager::remountAllResume() ++{ ++ TQString result; ++ ++ for (TQStringList::const_iterator it = m_suspendResumeMountList.begin(); ++ it != m_suspendResumeMountList.end(); ++ ++it) ++ { ++ const Medium *m = m_mediaList.findById(*it); ++ ++ if ( m && m->needMounting() ) ++ { ++ TQString tmp = mount( *it ); ++ if ( !tmp.isEmpty() ) { // mount failed ++ result = tmp; ++ } ++ } ++ } ++ ++ m_suspendResumeMountList.clear(); ++ ++ // return last error ++ return result; ++} ++ + + extern "C" { + KDE_EXPORT KDEDModule *create_mediamanager(const TQCString &obj) +--- ./kioslave/media/mediamanager/mediamanager.h.ORI 2013-05-08 23:05:36.250251036 +0200 ++++ ./kioslave/media/mediamanager/mediamanager.h 2013-05-08 23:07:27.650019601 +0200 +@@ -60,6 +60,20 @@ + bool removableUnplug(const TQString &devNode); + bool removableCamera(const TQString &devNode); + ++ /** ++ * Unmount manually all partitions when going to suspend ++ * ++ * @return last error if any ++ */ ++ TQString unmountAllSuspend(); ++ ++ /** ++ * Remount previously unmounted partitions in unmountAllSuspend() ++ * ++ * @return last error if any ++ */ ++ TQString remountAllResume(); ++ + k_dcop_signals: + void mediumAdded(const TQString &name, bool allowNotification); + void mediumRemoved(const TQString &name, bool allowNotification); +@@ -87,6 +101,8 @@ + HALBackend *m_halbackend; + MediaDirNotify m_dirNotify; + FstabBackend *m_fstabbackend; ++ TQStringList m_suspendResumeMountList; ++ + }; + + #endif +--- ./kioslave/media/mediamanager/halbackend.cpp.ori 2013-05-08 23:08:12.196126863 +0200 ++++ ./kioslave/media/mediamanager/halbackend.cpp 2013-05-08 23:08:51.096347073 +0200 +@@ -541,6 +541,7 @@ + libhal_volume_is_mounted(halVolume) ); /* Mounted ? */ + } + ++ medium->setIsHotplug( libhal_drive_is_hotpluggable(halDrive) ); + + char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy); + TQString volume_name = TQString::fromUtf8(name); +--- ./kioslave/media/mediamanager/halbackend.h.ORI 2013-05-08 23:09:35.761451488 +0200 ++++ ./kioslave/media/mediamanager/halbackend.h 2013-05-08 23:10:21.608531952 +0200 +@@ -89,6 +89,8 @@ + TQString decrypt(const TQString &id, const TQString &password); + TQString undecrypt(const TQString &id); + ++ static bool isHotplug( const TQString & id ); ++ + private: + /** + * Append a device in the media list. This function will check if the device -- cgit v1.2.1