diff --git a/klaptopdaemon/CMakeLists.txt b/klaptopdaemon/CMakeLists.txt index 2558f04..b7b4d72 100644 --- a/klaptopdaemon/CMakeLists.txt +++ b/klaptopdaemon/CMakeLists.txt @@ -60,14 +60,12 @@ tde_add_library( kcmlaptop SHARED AUTOMOC tde_add_kpart( kcm_laptop AUTOMOC SOURCES battery.cpp main.cpp pcmcia.cpp power.cpp warning.cpp acpi.cpp sony.cpp - profile.cpp buttons.cpp apm.cpp - ${CMAKE_CURRENT_BINARY_DIR}/crcresult.h + profile.cpp buttons.cpp apm.cpp LINK tdeio-shared kcmlaptop-shared DESTINATION ${PLUGIN_INSTALL_DIR} + DEPENDENCIES crcresult-header ) -# crcresult.h header is included here cause it is -# generated during build time. Otherwice the -# dependency on it won't be handeled correctly. + ##### kded_klaptopdaemon (kpart) ################ @@ -84,18 +82,19 @@ tde_add_kpart( kded_klaptopdaemon AUTOMOC ##### crcresult.h (header) ###################### -# FIXME: that should potentialy break the cross -# compilation, If it is possible in -# generall. -add_executable( makecrc makecrc.cpp ) -target_link_libraries( makecrc z ) - -get_target_property( MAKECRC_EXE makecrc LOCATION) +tde_add_executable( makecrc + SOURCES makecrc.cpp + LINK z +) -add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/crcresult.h - COMMAND - ${MAKECRC_EXE} >${CMAKE_CURRENT_BINARY_DIR}/crcresult.h - DEPENDS makecrc - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +add_custom_command( + OUTPUT crcresult.h + COMMAND makecrc > crcresult.h + DEPENDS makecrc klaptop_acpi_helper +) +add_custom_target( crcresult-header + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/crcresult.h +) diff --git a/klaptopdaemon/acpi.cpp b/klaptopdaemon/acpi.cpp index 27125dd..8bce86b 100644 --- a/klaptopdaemon/acpi.cpp +++ b/klaptopdaemon/acpi.cpp @@ -165,6 +165,17 @@ void AcpiConfig::setupHelper() unsigned long len, crc; TQString helper = TDEStandardDirs::findExe("klaptop_acpi_helper"); checkcrc(TQFile::encodeName(helper), len, crc); + if (len != file_len || crc != file_crc) + { + TQString str(i18n("The %1 application does not seem to have " + "the same size or checksum as when it was compiled we do NOT recommend " + "you proceed with making it setuid-root without further investigation").arg(helper)); + int rc = KMessageBox::warningContinueCancel(0, str, i18n("KLaptopDaemon"), i18n("Run Nevertheless")); + if (rc != KMessageBox::Continue) + { + return; + } + } TQString tdesu = TDEStandardDirs::findExe("tdesu"); if (!tdesu.isEmpty()) { diff --git a/klaptopdaemon/apm.cpp b/klaptopdaemon/apm.cpp index a7cb189..e2940d2 100644 --- a/klaptopdaemon/apm.cpp +++ b/klaptopdaemon/apm.cpp @@ -187,6 +187,17 @@ void ApmConfig::setupHelper2() // we use the acpi helper to do software suspend unsigned long len, crc; TQString helper = TDEStandardDirs::findExe("klaptop_acpi_helper"); checkcrc(helper.latin1(), len, crc); + if (len != file_len || crc != file_crc) + { + TQString str(i18n("The %1 application does not seem to have " + "the same size or checksum as when it was compiled we do NOT recommend " + "you proceed with making it setuid-root without further investigation").arg(helper)); + int rc = KMessageBox::warningContinueCancel(0, str, i18n("KLaptopDaemon"), i18n("Run Nevertheless")); + if (rc != KMessageBox::Continue) + { + return; + } + } TQString tdesu = TDEStandardDirs::findExe("tdesu"); if (!tdesu.isEmpty()) {