pkg://kdepim-3.4.0-4.src.rpm:11416961/kdepim-3.4.0-kandy-lockdev.patch
info downloads
--- /dev/null 2005-03-15 19:20:16.100072648 +0100
+++ kdepim-3.4.0/kandy/configure.in.in 2005-03-23 16:43:58.312096870 +0100
@@ -0,0 +1,12 @@
+# check for lockdev, optionally used to lock serial device
+AH_TEMPLATE(HAVE_LOCKDEV)
+AC_CHECK_HEADERS(lockdev.h, HAVE_LOCKDEV_H=1, HAVE_LOCKDEV_H=)
+AC_SUBST(HAVE_LOCKDEV_H)
+# we check for dev_unlock since kmobile checks dev_lock, caches it
+# and the variables are fucked up then... *sigh*
+if test -n "$HAVE_LOCKDEV_H"; then
+ AC_CHECK_LIB(lockdev, dev_unlock,
+ [KANDY_LIBLOCKDEV="-llockdev $KANDY_LIBLOCKDEV"
+AC_DEFINE(HAVE_LOCKDEV)], , $KANDY_LIBLOCKDEV)
+fi
+AC_SUBST(KANDY_LIBLOCKDEV)
--- kdepim-3.4.0/kandy/src/modem.cpp.orig 2005-03-17 20:06:48.000000000 +0100
+++ kdepim-3.4.0/kandy/src/modem.cpp 2005-03-23 16:43:58.313096705 +0100
@@ -264,9 +264,22 @@
}
}
+#ifdef HAVE_LOCKDEV
+#include <lockdev.h>
+#endif
bool Modem::lockDevice()
{
+ if ( is_locked )
+ return true;
+
+#ifdef HAVE_LOCKDEV
+ is_locked = !dev_lock( (*prefs).serialDevice().local8Bit() );
+ if (!is_locked)
+ emit errorMessage( i18n( "Unable to lock device '%1'." ).arg(
+ (*prefs).serialDevice() ));
+ return is_locked;
+#else
ssize_t count;
pid_t pid;
int lfd;
@@ -274,10 +287,6 @@
QStringList pathList;
QString fileName, content;
-
- if ( is_locked )
- return true;
-
pathList = QStringList::split( "/", (*prefs).serialDevice() );
fileName = (*prefs).lockDirectory() + "/LCK.." + pathList.last();
@@ -337,17 +346,22 @@
is_locked = true;
return true;
+#endif
}
void Modem::unlockDevice()
{
+#ifdef HAVE_LOCKDEV
+ dev_unlock( (*prefs).serialDevice().local8Bit(), getpid() );
+#else
if ( is_locked ) {
QStringList pathList = QStringList::split( "/", (*prefs).serialDevice() );
QFile::remove( (*prefs).lockDirectory() + "/LCK.." + pathList.last() );
is_locked = false;
}
+#endif
}
--- kdepim-3.4.0/kandy/src/Makefile.am.orig 2003-10-22 17:02:55.000000000 +0200
+++ kdepim-3.4.0/kandy/src/Makefile.am 2005-03-23 16:43:58.313096705 +0100
@@ -3,7 +3,7 @@
INCLUDES = -I$(top_srcdir) $(all_includes)
kandy_LDFLAGS = $(KDE_RPATH) $(all_libraries)
-kandy_LDADD = $(LIB_KFILE) -lkabc $(top_builddir)/libkdepim/libkdepim.la
+kandy_LDADD = $(KANDY_LIBLOCKDEV) $(LIB_KFILE) -lkabc $(top_builddir)/libkdepim/libkdepim.la
kandy_SOURCES = main.cpp kandy.cpp \
cmdpropertiesdialog_base.ui cmdpropertiesdialog.cpp \
kandyview.cpp \