summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt21
-rw-r--r--config.h.cmake1
-rw-r--r--tdecore/kpty.cpp4
3 files changed, 23 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c2bbfceaf..f3bdc78d5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -595,7 +595,26 @@ endif( HAVE_LIBMAGIC )
if( WITH_UTEMPTER )
check_include_file( utempter.h HAVE_UTEMPTER_H )
check_library_exists( utempter addToUtmp "" HAVE_ADDTOUTEMP )
- if( HAVE_UTEMPTER_H AND HAVE_ADDTOUTEMP )
+ if( NOT DEFINED UTEMPTER_HELPER )
+ message( STATUS "Looking for utempter helper" )
+ find_program( UTEMPTER_HELPER utempter
+ PATHS
+ /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/utempter
+ /usr/lib/utempter
+ /usr/libexec/utempter
+ /usr/libexec
+ /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}/utempter
+ /usr/local/lib/utempter
+ /usr/local/libexec/utempter
+ /usr/local/libexec
+ )
+ if( UTEMPTER_HELPER )
+ message( STATUS "Looking for utempter helper - found" )
+ else( )
+ message( STATUS "Looking for utempter helper - not found" )
+ endif( )
+ endif( )
+ if( HAVE_UTEMPTER_H AND HAVE_ADDTOUTEMP AND UTEMPTER_HELPER )
set( HAVE_UTEMPTER 1 )
set( UTEMPTER_LIBRARY utempter )
else( )
diff --git a/config.h.cmake b/config.h.cmake
index eddb68baf..3ce8a615f 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -708,6 +708,7 @@
/* Define if you have the utempter helper for utmp managment */
#cmakedefine HAVE_UTEMPTER 1
+#cmakedefine UTEMPTER_HELPER "@UTEMPTER_HELPER@"
/* Define to 1 if you have the <util.h> header file. */
#cmakedefine HAVE_UTIL_H 1
diff --git a/tdecore/kpty.cpp b/tdecore/kpty.cpp
index 42abd1aed..1e5806133 100644
--- a/tdecore/kpty.cpp
+++ b/tdecore/kpty.cpp
@@ -453,7 +453,7 @@ void KPty::login(const char *user, const char *remotehost)
#ifdef HAVE_UTEMPTER
TDEProcess_Utmp utmp;
utmp.cmdFd = d->masterFd;
- utmp << "/usr/lib/utempter/utempter" << "add";
+ utmp << UTEMPTER_HELPER << "add";
if (remotehost)
utmp << remotehost;
utmp.start(TDEProcess::Block);
@@ -498,7 +498,7 @@ void KPty::logout()
#ifdef HAVE_UTEMPTER
TDEProcess_Utmp utmp;
utmp.cmdFd = d->masterFd;
- utmp << "/usr/lib/utempter/utempter" << "del";
+ utmp << UTEMPTER_HELPER << "del";
utmp.start(TDEProcess::Block);
#elif defined(USE_LOGIN)
const char *str_ptr = d->ttyName.data();