Hi, the way the pppd plugin gets built and installed is a lot cleaner in trunk than in the 0.6 branch, which has some major flaws: * doesn't work with pppd != 2.4.3 (for me) * installs library into bindir and not the ppp plugin-dir To fix this here's a backport from the the changes introduced in the trunk, and a fix when the prefix is unset. Apply it like so: 1. Remove src/pppd 2. Copy /src/extern from trunk 3. Apply patch Thanks, Robert
Index: configure.in
===================================================================
--- configure.in (revision 2712)
+++ configure.in (working copy)
@@ -15,6 +15,10 @@
AC_PROG_INSTALL
AC_PROG_LIBTOOL
+if [[ "$prefix" = "NONE" ]]; then
+ prefix=$ac_default_prefix
+fi
+
dnl
dnl Required headers
dnl
@@ -104,6 +108,62 @@
AC_MSG_RESULT(no)
fi
+AC_ARG_WITH(pppd, AC_HELP_STRING([--with-pppd=DIR], [Specify path to pppd.h (and patchlevel.h)]))
+AC_ARG_WITH(pppd-version, AC_HELP_STRING([--with-pppd-version=VERSION], [Version of pppd.h]))
+if test "z$with_pppd" != "z"; then
+ AC_MSG_CHECKING([for $with_pppd/pppd.h])
+ if test -f "$with_pppd/pppd.h"; then
+ PPPD_CFLAGS="-I $with_pppd"
+ PPPD_VERSION=`grep VERSION $with_pppd/patchlevel.h | awk '{print $3}' | sed -e 's/\s*"\s*//g'`
+ found_pppd_headers=yes
+ AC_MSG_RESULT(found version $PPPD_VERSION)
+ else
+ AC_MSG_ERROR(not found in $with_pppd)
+ fi
+fi
+
+if test "z$found_pppd_headers" = "z"; then
+ AC_MSG_CHECKING([for pppd.h under $prefix/include])
+ find_pppd_h=`find $prefix/include -name pppd.h | xargs | awk '{print $1}'`
+ if echo $find_pppd_h | grep pppd.h; then
+ with_pppd=`dirname $find_pppd_h`
+ PPPD_CFLAGS="-I $with_pppd"
+ PPPD_VERSION=`grep VERSION $with_pppd/patchlevel.h | awk '{print $3}' | sed -e 's/\s*"\s*//g'`
+ found_pppd_headers=yes
+ AC_MSG_RESULT(found version $PPPD_VERSION)
+ else
+ AC_MSG_RESULT(not found)
+ fi
+fi
+
+if test "z$found_pppd_headers" = "z"; then
+ if test "z$PPPD_VERSION" = "z"; then
+ AC_MSG_RESULT(Couldn't find pppd.h trying to determine pppd version to use in tree headers)
+ ##### Find PPPD executable
+ AC_CHECK_PROG(PPPD,pppd,pppd)
+ if test "z$PPPD" = "z"; then
+ AC_MSG_ERROR(Cannot compile without pppd)
+ fi
+ AC_MSG_RESULT(pppd version not found attempting to run 'pppd --version')
+ PPPD_VERSION=`$PPPD --version 2>&1 | awk '{print $3}'`
+ if test "z$PPPD_VERSION" = "z"; then
+ AC_MSG_ERROR(Couldn't determine the version of your pppd package.)
+ fi
+ fi
+
+ if ! test -d "src/external/$PPPD_VERSION"; then
+ AC_MSG_ERROR(pppd headers could not be found)
+ fi
+
+ AC_MSG_RESULT(Found in source headers for pppd version $PPPD_VERSION)
+ PPPD_CFLAGS="-I ./external/$PPPD_VERSION"
+fi
+
+pppdplugindir="$libdir/pppd/$PPPD_VERSION"
+AC_SUBST(pppdplugindir)
+AC_SUBST(PPPD_CFLAGS)
+
+
AC_OUTPUT([
Makefile
src/Makefile
Index: src/nm-pptp-service-pppd-plugin.c
===================================================================
--- src/nm-pptp-service-pppd-plugin.c (revision 2712)
+++ src/nm-pptp-service-pppd-plugin.c (working copy)
@@ -22,6 +22,11 @@
#include "pppd/pppd.h"
#include "pppd/fsm.h"
#include "pppd/ipcp.h"
+#ifndef PPPD_VERSION
+ #ifdef VERSION
+ #define PPPD_VERSION VERSION
+ #endif
+#endif
#include <glib.h>
#include <stdlib.h>
Index: src/Makefile.am
===================================================================
--- src/Makefile.am (revision 2712)
+++ src/Makefile.am (working copy)
@@ -4,6 +4,7 @@
$(DBUS_CFLAGS) \
$(GTHREAD_CFLAGS) \
$(NETWORK_MANAGER_CFLAGS) \
+ $(PPPD_CFLAGS) \
-Wall \
-DDBUS_API_SUBJECT_TO_CHANGE \
-DG_DISABLE_DEPRECATED \
@@ -14,27 +15,34 @@
-DLIBDIR=\""$(libdir)"\" \
-DLIBEXECDIR=\""$(libexecdir)"\" \
-DLOCALSTATEDIR=\""$(localstatedir)"\" \
- -DDATADIR=\"$(datadir)\" \
- -fPIC
+ -DDATADIR=\"$(datadir)\"
-bin_PROGRAMS = nm-pptp-service nm-pptp-service-pppd-plugin.so
+bin_PROGRAMS = nm-pptp-service
nm_pptp_service_SOURCES = \
nm-pptp-service.c \
nm-pptp-service.h \
nm-utils.c \
nm-utils.h \
- pppd/fsm.h \
- pppd/ipcp.h \
- pppd/patchlevel.h \
- pppd/pppd.h
+ external/2.4.3/pppd/patchlevel.h \
+ external/2.4.3/pppd/ipcp.h \
+ external/2.4.3/pppd/pppd.h \
+ external/2.4.3/pppd/fsm.h \
+ external/2.4.4/pppd/patchlevel.h \
+ external/2.4.4/pppd/ipcp.h \
+ external/2.4.4/pppd/pppd.h \
+ external/2.4.4/pppd/fsm.h \
+ external/2.4.4b1/pppd/patchlevel.h \
+ external/2.4.4b1/pppd/ipcp.h \
+ external/2.4.4b1/pppd/pppd.h \
+ external/2.4.4b1/pppd/fsm.h
-
nm_pptp_service_LDADD = \
$(DBUS_LIBS) \
$(GTHREAD_LIBS) \
$(NETWORK_MANAGER_LIBS)
+pppdplugin_PROGRAMS = nm-pptp-service-pppd-plugin.so
nm_pptp_service_pppd_plugin_so_SOURCES = \
nm-pptp-service-pppd-plugin.c
@@ -42,6 +50,9 @@
nm_pptp_service_pppd_plugin_so_LDFLAGS = \
-shared
+nm_pptp_service_pppd_plugin_so_CFLAGS = \
+ -fPIC
+
nm_pptp_service_pppd_plugin_so_LDADD = \
$(DBUS_LIBS) \
$(GTHREAD_LIBS) \
Attachment:
signature.asc
Description: This is a digitally signed message part.