FS#20925 - [rp-pppoe] pppoe-server has wrong hardcoded path to pppoe-plugin

Attached to Project: Arch Linux
Opened by Matthias Dienstbier (fs4000) - Friday, 24 September 2010, 01:28 GMT
Last edited by Isenmann Daniel (ise) - Monday, 18 April 2011, 07:14 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Isenmann Daniel (ise)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
If you try to run pppoe-server with kernel-mode PPPoE (-k parameter) and connect a client you will get this error:
pppd: /etc/ppp/plugins/rp-pppoe.so: cannot open shared object file: No such file or directory
pppd: Couldn't load plugin /etc/ppp/plugins/rp-pppoe.so

This is because the path to the plugin is hardcoded but we are moving the plugin from /etc to /usr after compilation.

Solution:
The Makefile has a PLUGIN_DIR option which should be changed or overridden instead.

PS: Why do we use --enable-plugin=/ppp-2.4.4 and not simply --enable-plugin ?
This task depends upon

Closed by  Isenmann Daniel (ise)
Monday, 18 April 2011, 07:14 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed in package version 3.10-6. Package is in [testing]
Comment by Ionut Biru (wonder) - Friday, 24 September 2010, 07:55 GMT
the location was changed. conform .install:

>>> The kernel-mode plugin has a new place."
>>> It's now located under /usr/lib/rp-pppoe/rp-pppoe.so"
>>> Change LINUX_PLUGIN to the new path in your /etc/ppp/pppoe.conf"
Comment by Matthias Dienstbier (fs4000) - Friday, 24 September 2010, 10:26 GMT
I tried to change that option of course but pppoe-server does not honor it. The path is hardcoded in the binary:
$ strings /usr/sbin/pppoe-server | grep 'pppoe\.so'
/etc/ppp/plugins/rp-pppoe.so

Look at the code (this ssems to bild the command to invoke "pppd plugin /etc/ppp/plugins/rp-pppoe.so ...":
argv[c++] = "pppd";
argv[c++] = "plugin";
argv[c++] = PLUGIN_PATH;

According to Makefile it gets compiled with -DPLUGIN_PATH="/etc/ppp/plugins/rp-pppoe.so".

When I used "make PLUGIN_DIR=/usr/lib/rp-pppoe" the path was correct:
$ strings /usr/sbin/pppoe-server | grep 'pppoe\.so'
/usr/lib/rp-pppoe/rp-pppoe.so

Loading...