From b6953843f5d84e806cdb8ecf50eb2ac58ee9e065 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Mon, 10 Feb 2020 15:25:45 +0900 Subject: Added back build options for UDISKS2, UDISKS and UDEVIL as requested by some users. Signed-off-by: Michele Calgaro --- tdecore/tdehw/CMakeLists.txt | 24 ++++++++++++++++++++---- tdecore/tdehw/disksHelper.cpp | 29 ++++++++++++++++++----------- tdecore/tdehw/tdestoragedevice.cpp | 35 ++++++++++++++++++++++++++++------- 3 files changed, 66 insertions(+), 22 deletions(-) (limited to 'tdecore/tdehw') diff --git a/tdecore/tdehw/CMakeLists.txt b/tdecore/tdehw/CMakeLists.txt index 9495b3717..737d0557c 100644 --- a/tdecore/tdehw/CMakeLists.txt +++ b/tdecore/tdehw/CMakeLists.txt @@ -17,6 +17,13 @@ if( NOT DBUS_SYSTEM_BUS ) set( DBUS_SYSTEM_BUS "unix:path=/var/run/dbus/system_bus_socket" CACHE INTERNAL "" FORCE ) endif() +if( WITH_TDEHWLIB_DAEMONS OR WITH_HAL OR WITH_DEVKITPOWER OR WITH_UPOWER OR WITH_UDISKS OR WITH_UDISKS2 OR + WITH_NETWORK_MANAGER_BACKEND OR WITH_CONSOLEKIT ) + list( APPEND TDEHW_CUSTOM_INCLUDE_DIRS ${DBUS_TQT_INCLUDE_DIRS} ) + list( APPEND TDEHW_CUSTOM_LIBRARY_DIRS ${DBUS_TQT_LIBRARY_DIRS} ) + list( APPEND TDEHW_CUSTOM_LIBRARIES ${DBUS_TQT_LIBRARIES} ) +endif( ) + if( WITH_TDEHWLIB_DAEMONS ) add_definitions( -DWITH_TDEHWLIB_DAEMONS ) endif( ) @@ -37,6 +44,18 @@ if( WITH_UPOWER ) add_definitions( -DWITH_UPOWER ) endif( ) +if( WITH_UDISKS ) + add_definitions( -DWITH_UDISKS ) +endif( ) + +if( WITH_UDISKS2 ) + add_definitions( -DWITH_UDISKS2 ) +endif( ) + +if( WITH_UDEVIL ) + add_definitions( -DWITH_UDEVIL ) +endif( ) + if( WITH_CONSOLEKIT ) add_definitions( -DWITH_CONSOLEKIT ) endif( ) @@ -73,13 +92,11 @@ include_directories( ${CMAKE_SOURCE_DIR}/tdecore ${CMAKE_SOURCE_DIR}/dcop ${CMAKE_BINARY_DIR}/tdeio/kssl - ${DBUS_TQT_INCLUDE_DIRS} ${TDEHW_CUSTOM_INCLUDE_DIRS} ) link_directories( ${TQT_LIBRARY_DIRS} - ${DBUS_TQT_LIBRARY_DIRS} ${TDEHW_CUSTOM_LIBRARY_DIRS} ) @@ -109,6 +126,5 @@ set( ${target}_SRCS tde_add_library( ${target} STATIC_PIC AUTOMOC SOURCES ${${target}_SRCS} - LINK udev ${TDENM_LIBRARIES} ${TDEUPOWER_LIBRARIES} ${DBUS_TQT_LIBRARIES} - ${TDEHW_CUSTOM_LIBRARIES} + LINK udev ${TDENM_LIBRARIES} ${TDEUPOWER_LIBRARIES} ${TDEHW_CUSTOM_LIBRARIES} ) diff --git a/tdecore/tdehw/disksHelper.cpp b/tdecore/tdehw/disksHelper.cpp index 0eab2d28c..2589e5053 100644 --- a/tdecore/tdehw/disksHelper.cpp +++ b/tdecore/tdehw/disksHelper.cpp @@ -20,16 +20,21 @@ #include "disksHelper.h" #include "tdelocale.h" #include "tdestoragedevice.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include "tqdbusdatalist.h" +#if defined(WITH_UDISKS) || defined(WITH_UDISKS2) + #include + #include + #include + #include + #include + #include + #include + #include + #include "tqdbusdatalist.h" +#endif + + +#ifdef WITH_UDISKS //------------------------------- // UDisks //------------------------------- @@ -148,7 +153,10 @@ TQStringVariantMap UDisksUnmountDrive(TQString deviceNode, TQStringList unmountO } return result; } +#endif + +#ifdef WITH_UDISKS2 //------------------------------- // UDisks2 //------------------------------- @@ -310,5 +318,4 @@ TQStringVariantMap UDisks2UnmountDrive(TQString deviceNode, TQString unmountOpti } return result; } - - +#endif diff --git a/tdecore/tdehw/tdestoragedevice.cpp b/tdecore/tdehw/tdestoragedevice.cpp index d797ff032..bff09e319 100644 --- a/tdecore/tdehw/tdestoragedevice.cpp +++ b/tdecore/tdehw/tdestoragedevice.cpp @@ -308,6 +308,7 @@ bool TDEStorageDevice::lockDriveMedia(bool lock) { } bool TDEStorageDevice::ejectDrive() { +#ifdef WITH_UDISKS2 if (!(TDEGlobal::dirs()->findExe("udisksctl").isEmpty())) { TQStringVariantMap ejectResult = UDisks2EjectDrive(this); if (ejectResult["result"].toBool()) { @@ -318,6 +319,8 @@ bool TDEStorageDevice::ejectDrive() { fflush(stdout); } } +#endif +#ifdef WITH_UDISKS if (!(TDEGlobal::dirs()->findExe("udisks").isEmpty())) { TQStringVariantMap ejectResult = UDisksEjectDrive(this); if (ejectResult["result"].toBool()) { @@ -328,6 +331,7 @@ bool TDEStorageDevice::ejectDrive() { fflush(stdout); } } +#endif if (!(TDEGlobal::dirs()->findExe("eject").isEmpty())) { TQString command = TQString("eject -v '%1' 2>&1").arg(deviceNode()); @@ -718,7 +722,9 @@ TQStringVariantMap TDEStorageDevice::mountDevice(TQString mediaName, TDEStorageM TQString devNode = deviceNode(); devNode.replace("'", "'\\''"); mediaName.replace("'", "'\\''"); + TQString command = TQString::null; +#if defined(WITH_UDISKS2) || defined(WITH_UDISKS) || defined(WITH_UDEVIL) // Prepare filesystem options for mount TQStringList udisksOptions; if (mountOptions["ro"] == "true") { @@ -770,13 +776,17 @@ TQStringVariantMap TDEStorageDevice::mountDevice(TQString mediaName, TDEStorageM optionString.remove(0, 1); } - // Try to use UDISKS v2 via DBUS, if available TQString fileSystemType; if (mountOptions.contains("filesystem") && !mountOptions["filesystem"].isEmpty()) { fileSystemType = mountOptions["filesystem"]; } - TQStringVariantMap mountResult = UDisks2MountDrive(devNode, fileSystemType, optionString); + TQStringVariantMap mountResult; +#endif + +#if defined(WITH_UDISKS2) + // Try to use UDISKS v2 via DBUS, if available + mountResult = UDisks2MountDrive(devNode, fileSystemType, optionString); if (mountResult["result"].toBool()) { // Update internal mount data TDEGlobal::hardwareDevices()->processModifiedMounts(); @@ -791,7 +801,9 @@ TQStringVariantMap TDEStorageDevice::mountDevice(TQString mediaName, TDEStorageM result["result"] = false; return result; } +#endif +#if defined(WITH_UDISKS) // The UDISKS v2 DBUS service was either not available or was unusable // Try to use UDISKS v1 via DBUS, if available mountResult = UDisksMountDrive(devNode, fileSystemType, udisksOptions); @@ -809,10 +821,11 @@ TQStringVariantMap TDEStorageDevice::mountDevice(TQString mediaName, TDEStorageM result["result"] = false; return result; } +#endif +#if defined(WITH_UDEVIL) // The UDISKS v1 DBUS service was either not available or was unusable // Use 'udevil' command, if available - TQString command = TQString::null; if (!TDEGlobal::dirs()->findExe("udevil").isEmpty()) { if (mountOptions.contains("filesystem") && !mountOptions["filesystem"].isEmpty()) { fileSystemType = TQString("-t %1").arg(mountOptions["filesystem"]); @@ -829,8 +842,9 @@ TQStringVariantMap TDEStorageDevice::mountDevice(TQString mediaName, TDEStorageM command = TQString("udevil mount %1 -o '%2' '%3' '%4' 2>&1") .arg(fileSystemType).arg(optionString).arg(devNode).arg(mountpoint); } +#endif - // If 'udevil' was not found, use 'pmount' command if available + // If no other method was found, use 'pmount' command if available if(command.isEmpty()) { if (!TDEGlobal::dirs()->findExe("pmount").isEmpty()) { // Create dummy password file @@ -990,9 +1004,12 @@ TQStringVariantMap TDEStorageDevice::unmountDevice() { mountpoint.replace("'", "'\\''"); TQString devNode = deviceNode(); + TQString command = TQString::null; + TQStringVariantMap unmountResult; +#if defined(WITH_UDISKS2) // Try to use UDISKS v2 via DBUS, if available - TQStringVariantMap unmountResult = UDisks2UnmountDrive(devNode, TQString::null); + unmountResult = UDisks2UnmountDrive(devNode, TQString::null); if (unmountResult["result"].toBool()) { // Update internal mount data TDEGlobal::hardwareDevices()->processModifiedMounts(); @@ -1006,7 +1023,9 @@ TQStringVariantMap TDEStorageDevice::unmountDevice() { result["result"] = false; return result; } +#endif +#if defined(WITH_UDISKS) // The UDISKS v2 DBUS service was either not available or was unusable // Try to use UDISKS v1 via DBUS, if available unmountResult = UDisksUnmountDrive(devNode, TQStringList()); @@ -1023,15 +1042,17 @@ TQStringVariantMap TDEStorageDevice::unmountDevice() { result["result"] = false; return result; } +#endif +#if defined(WITH_UDEVIL) // The UDISKS v1 DBUS service was either not available or was unusable // Use 'udevil' command, if available - TQString command = TQString::null; if (!TDEGlobal::dirs()->findExe("udevil").isEmpty()) { command = TQString("udevil umount '%1' 2>&1").arg(mountpoint); } +#endif - // If 'udevil' was not found, use 'pmount' command if available + // If no other method was found, use 'pmount' command if available if(command.isEmpty() && !TDEGlobal::dirs()->findExe("pumount").isEmpty()) { command = TQString("pumount '%1' 2>&1").arg(mountpoint); } -- cgit v1.2.3