Summary: | net-misc/networkmanager hardcodes 2.4.5 ppp plugin directory if it's not specified to other value | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Clemente Aguiar <clemente.aguiar> |
Component: | [OLD] GNOME | Assignee: | Steev Klimaszewski (RETIRED) <steev> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ago, gentoo, gnome, javran.c, net-dialup, thunder367 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Clemente Aguiar
2014-08-15 11:48:26 UTC
So it's fixed by re-emerging net-misc/networkmanager-pptp. Replace net-dialup/ppp with net-dialup/ppp:= in RDEPEND to fix this. Yes it's fixed by re-emerging net-misc/networkmanager-pptp. However the libraries re-built land in the following directory /usr/lib64/pppd/2.4.5 $ ls /usr/lib64/pppd/2.4.5 nm-pppd-plugin.so nm-pptp-pppd-plugin.so Just a comment. (In reply to Jeroen Roovers from comment #1) > So it's fixed by re-emerging net-misc/networkmanager-pptp. (In reply to Lars Wendler (Polynomial-C) from comment #2) > Replace > > net-dialup/ppp > > with > > net-dialup/ppp:= > > in RDEPEND to fix this. in short: that's wrong. in long: net-misc/networkmanager-pptp writes in /usr/lib64/pppd/$ppp_version but if you update ppp from 2.4.5 to 2.4.7 while you recompile networkmanager-pptp you can see in the build log that it points to ppp-2.4.5: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/NetworkManager -I/usr/include/libnm-glib -I/usr/include/NetworkManager -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DBINDIR=\"/usr/bin\" -DPREFIX=\""/usr"\" -DSYSCONFDIR=\""/etc"\" -DNM_VERSION="\"0.9.8.4\"" -DLIBDIR=\""/usr/lib64"\" -DLIBEXECDIR=\""/usr/libexec"\" -DLOCALSTATEDIR=\""/var/lib"\" -DDATADIR=\"/usr/share\" -DNM_PPTP_LOCALEDIR=\"/usr/share/locale\" -DPLUGINDIR=\"/usr/lib64/pppd/2.4.5\" -O2 -pipe -march=x86-64 -c -o nm-pptp-service.o nm-pptp-service.c the highlight is: -DPLUGINDIR=\"/usr/lib64/pppd/2.4.5\" So, you need to rebuild first networkmanager; infact, after upgrade ppp and rebuild networkmanager-pptp you have: arcadia ~ # qfile /usr/lib64/pppd/2.4.5 net-misc/networkmanager-pptp (/usr/lib64/pppd/2.4.5) net-misc/networkmanager (/usr/lib64/pppd/2.4.5) arcadia ~ # qfile /usr/lib64/pppd/2.4.7 net-dialup/ppp (/usr/lib64/pppd/2.4.7) The problem is that when you recompile networkmanager it always points to 2.4.5: (before and after recompile networkmanager) ago@arcadia ~ $ qlist -e networkmanager | grep "/usr/lib64/ppp" /usr/lib64/pppd/2.4.5/nm-pppd-plugin.so and in the build log we have always -DPLUGINDIR=\"/usr/lib64/pppd/2.4.5\" The final question is: is networkmanager able to work with ppp-2.4.7? Why with ppp-2.4.7 installed, networkmanager compiles against 2.4.5? This is because we need to specify it with --with-pppd-plugin-dir=$(ppp_version) The problem is that the only way I see to get $(ppp_version) would be to run "pppd --version" and something to get only the version :S ppp maintainers, isn't there anyway to query for current ppp plugindir? (In reply to Pacho Ramos from comment #5) > This is because we need to specify it with > --with-pppd-plugin-dir=$(ppp_version) > > The problem is that the only way I see to get $(ppp_version) would be to run > "pppd --version" and something to get only the version :S > > ppp maintainers, isn't there anyway to query for current ppp plugindir? We can obtain the version of ppp but I don't know another clean way and if we can put it in the ebuild: grep VERSION /usr/include/pppd/patchlevel.h | awk '{print $3}' | sed "s:\"::g" (In reply to Agostino Sarubbo from comment #6) > (In reply to Pacho Ramos from comment #5) > > This is because we need to specify it with > > --with-pppd-plugin-dir=$(ppp_version) > > > > The problem is that the only way I see to get $(ppp_version) would be to run > > "pppd --version" and something to get only the version :S > > > > ppp maintainers, isn't there anyway to query for current ppp plugindir? > > We can obtain the version of ppp but I don't know another clean way and if > we can put it in the ebuild: > > grep VERSION /usr/include/pppd/patchlevel.h | awk '{print $3}' | sed > "s:\"::g" I recommend to add subslot to ppp dependency - i add it to ppp ebuilds just for such cases(net-misc/pptpd suffered from the same problem). Plugin version changes at every release of ppp, thus - networkmanager with USE="ppp" should be rebuilded too. (In reply to Sergey Popov from comment #7) [...] > I recommend to add subslot to ppp dependency - i add it to ppp ebuilds just > for such cases(net-misc/pptpd suffered from the same problem). Plugin > version changes at every release of ppp, thus - networkmanager with > USE="ppp" should be rebuilded too. Yes, we will need subslot dependency to force rebuild, but we also need the way to check for version to specify it at configure time when package is rebuild :| Not sure if there are any other ideas for checking for the plugin dir for ppp :/ For now I have reported this to upstream: https://github.com/paulusmack/ppp/issues/19 To try to convince them to provide a mechanism to check for plugin dir (as every distribution is providing a different hack :S, and also NM configure check sucks due this problem) (In reply to Pacho Ramos from comment #8) > (In reply to Sergey Popov from comment #7) > [...] > > I recommend to add subslot to ppp dependency - i add it to ppp ebuilds just > > for such cases(net-misc/pptpd suffered from the same problem). Plugin > > version changes at every release of ppp, thus - networkmanager with > > USE="ppp" should be rebuilded too. > > Yes, we will need subslot dependency to force rebuild, but we also need the > way to check for version to specify it at configure time when package is > rebuild :| Not sure if there are any other ideas for checking for the plugin > dir for ppp :/ I use dirty hack in pptpd ebuild for that: # Match pptpd-logwtmp.so's version with pppd's version (#89895) local PPPD_VER=`best_version net-dialup/ppp` PPPD_VER=${PPPD_VER#*/*-} #reduce it to ${PV}-${PR} PPPD_VER=${PPPD_VER%%[_-]*} # main version without beta/pre/patch/revision Not very beatiful, but at least working solution +*networkmanager-0.9.10.0 (22 Sep 2014) + + 22 Sep 2014; Pacho Ramos <pacho@gentoo.org> +networkmanager-0.9.10.0.ebuild, + -networkmanager-0.9.8.8.ebuild, metadata.xml: + Version bump, default to dhclient instead of dhcpcd (#493732), set proper pppd + plugindir (#519986 by Clemente Aguiar, Sergey Popov, Agostino Sarubbo and + others), remove wimax support (#522822 by Dion Moult), drop old. + |