On Thu, 2019-07-18 at 20:39 +0200, Jelle Licht wrote:
Thomas Haller <thaller redhat com> writes:[snip] if you have /gnu/store/123verylonghash-networkmanager-1.18.2/ /gnu/store/234verylonghash-networkmanager-1.20.0/ and /gnu/store/345verylonghash-networkmanager-openvpn-1.2.8/ then the plugin should work with both versions of NetworkManager. How would you solve that if you don't have a well known path where VPN plugins announce their existance (by putting their .name file there).We solve this by setting NM_VPN_PLUGIN_DIR to `/gnu/store/345verylonghash-networkmanager-openvpn-1.2.8/' for both service configurations.
why put the VPN's .name files be in a directory named .../*networkmanager-openvpn*/ ? There can be any number of VPN plugins and other plugins shouldn't care about nm-openvpn. Shouldn't the path at least be /gnu/store/345verylonghash-NetworkMaager-1.20.0/ and the VPN plugins put their .name files there?
Mind you, since `network-manager' is an input for each nm vpn plugin we have packaged, each distinct nm version leads to distinct build artifacts for each nm vpn plugin.At that point, can you not patch NetworkManager source to look at the right place? Possibly we could add a configure option to make that easier.To summarize and directly address your point; there is indeed *one* location where we put all of our vpn plugins, but this location is only known after building each of nm and the selected vpn plugins.When switching NetworkManager you have to rebuild all plugins? That seems unnecessary and diamentral. At most you need to run a script to put the .name files in the new location. Also, if you anyway rebuild everything, why do you need an environment variable? If you can set the environment variable, can you not set the build-option? I guess, if you switch between NetworkManager versions, you would change the environment variable. But that is not enough. The VPN plugins need to copy their name files to the new location. And at that point, what does the environment variable help?The plugin directory will change depending on which plugins are included, so in order to avoid recompiling NM every time you change the set of plugins, you need to be able to pass the plugin directory to the daemon at runtime.
best, Thomas
Attachment:
signature.asc
Description: This is a digitally signed message part