Created attachment 762396 [details]
emerge --info net-dialup/ppp
While using net-misc/networkmanager for a PPPoE connection,
the connection fails. The output of logs shows:
# journalctl -u NetworkManager.service -f
Jan 17 13:45:27 rog NetworkManager: <info> [1642419927.4882] ppp-manager: pppd started with pid 3272
Jan 17 13:45:27 rog NetworkManager: /usr/sbin/pppd: /usr/lib64/pppd/2.4.9/rp-pppoe.so: cannot open shared object file: No such file or directory
Jan 17 13:45:27 rog NetworkManager: /usr/sbin/pppd: Couldn't load plugin rp-pppoe.so
Jan 17 13:45:27 rog pppd: /usr/lib64/pppd/2.4.9/rp-pppoe.so: cannot open shared object file: No such file or directory
Jan 17 13:45:27 rog NetworkManager: <warn> [1642419927.4921] ppp-manager: pppd pid 3272 exited with error 2: pppd options error
Jan 17 13:45:27 rog pppd: Couldn't load plugin rp-pppoe.so
Jan 17 13:45:27 rog NetworkManager: <info> [1642419927.4922] device (enp4s0): state change: ip-config -> failed (reason 'ppp-failed', sys-iface-state: 'managed')
Jan 17 13:45:27 rog NetworkManager: <info> [1642419927.4927] manager: NetworkManager state is now CONNECTED_LOCAL
Jan 17 13:45:27 rog NetworkManager: <warn> [1642419927.4929] device (enp4s0): Activation: failed for connection 'New pppoe connection'
Jan 17 13:45:27 rog NetworkManager: <info> [1642419927.4935] device (enp4s0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
Jan 17 13:45:33 rog NetworkManager: <info> [1642419933.4894] device (enp4s0): state change: disconnected -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')
Indeed, this file does not exist:
$ ls /usr/lib64/pppd/2.4.9/rp-pppoe.so
ls: cannot access '/usr/lib64/pppd/2.4.9/rp-pppoe.so': No such file or directory
I've re-merged net-dialup/ppp and this gives the hint:
* Messages for package net-dialup/ppp-2.4.9-r5:
* Log file: /var/tmp/portage/logs/net-dialup:ppp-2.4.9-r5:20220117-120814.log
* "rp-pppoe.so" plugin has been renamed to "pppoe.so"
So the shared object is renamed within the package, but the executable pppd still point to the old file.
As a workaround, I created a symlink:
# cd /usr/lib64/pppd/2.4.9/
# ln -s pppoe.so rp-pppoe.so
PPPoE started to work again.
Created attachment 762397 [details]
journalctl -u NetworkManager.service -f
Attaching the logs for better readability
net-dialup/ppp renamed the plugin to pppoe.so to avoid conflicts with net-dialup/rp-pppoe.
This was an upstream change.
Author: pali <firstname.lastname@example.org>
Date: Fri Jul 30 05:29:01 2021 +0200
pppoe: Remove rp-pppoe.so symlink to not conflict with real rp-pppoe.so plugin (#304)
Backward compatibility symlink is there already for one ppp release. Remove
it for next ppp release to not conflict with real rp-pppoe.so plugin. So
both ppp's pppoe.so and rp's rp-pppoe.so plugins can be installed together.
Now when conversion to automake was done, it is a good time to drop this
problematic symlink from default installation.
Signed-off-by: Pali Rohár <email@example.com>
If you *really* want (or need) the rp-pppoe plugin version, merge >=net-dialup/rp-pppoe-3.15-r1. I would state that the pppoe.so that ships with pppd is just fine, it was (from what I can infer) forked from the original rp-pppoe.so plugin anyway. rp-pppoe package seems like a one-person show at this point, with myself possibly being the only other submitter of patches (infrequent) at this stage. The ONLY component from rp-pppoe package which in my opinion is really still needed is the server component.
If there is documentation stating that pppoe connections should set plugin rp-pppoe.so then we better fix that to just state plugin pppoe.so
Possibly (probably) net-misc/networkmanager needs some fixing to reference pppoe.so instead of rp-pppoe.so? Specifically:
src/core/ppp/nm-ppp-manager.c requires s/rp-pppoe/pppoe/ to be actioned against it from what I've read of the code.
I don't use networkmanager so cannot assist beyond that. Towards that, I'm also dropping myself from CC.
I do not believe any changes to net-dialup/ppp nor net-dialup/rp-pppoe is required. It's networkmanager that should be fixed. I'm marking this to confirmed due to code inspection.