-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 10/05/12 14:33, Alon Bar-Lev wrote: > On Thu, May 10, 2012 at 11:47 AM, Samuli Seppänen > <sam...@openvpn.net> wrote: >> >>> On Tue, May 8, 2012 at 11:28 AM, Samuli Seppänen >>> <sam...@openvpn.net> wrote: >>>>> Hello David, >>>>> >>>>> On Mon, May 7, 2012 at 10:33 AM, David Sommerseth >>>>> <openvpn.l...@topphemmelig.net> wrote: >>>>> >>>>> <snip> >>>>> >>>>>> The reason I don't see the benefit of splitting out the >>>>>> plug-ins as much is that they all depend on OpenVPN. You >>>>>> can not make much use of these plug-ins without having >>>>>> OpenVPN. But with Windows TAP driver and easy-rsa, they >>>>>> can be completely used independently. >>>>>> >>>>>> Another point is that the plug-ins we have in the source >>>>>> tree, is officially supported plug-ins. And especially >>>>>> auth-pam and down-root are plug-ins which are very useful >>>>>> and we should encourage packagers to always package >>>>>> those. >>>>>> >>>>>> Then the example/ and defer/ plug-ins, which are >>>>>> examples. Maybe it would rather make sense to merge them >>>>>> somehow? >>>>> There are a lot of plugins out there, think about chrome >>>>> extension or firefox extension, but also network manager >>>>> plugins or similar, they are all depend on the core >>>>> product, but extend its functionality, and have their own >>>>> repositories. >>>>> >>>>> Plugins should be installed as separate package, aka rpm. >>>>> >>>>> So if administrator wants openvpn he does: # yum install >>>>> openvpn >>>>> >>>>> Now, if administrator wants auth-pam, he should do: # yum >>>>> install openvpn-plugin-auth-pam >>>>> >>>>> As there is no sense in keeping the auth-pam plugin in >>>>> system if it is unused nor to have pam dependency of the >>>>> openvpn core package. >>>>> >>>>> I would not encourage packages to always have them, it is >>>>> also not the correct approach for plugins. Plugins should >>>>> be optional in nature. >>>>> >>>>> All the above does not imply separate repository as in both >>>>> cases we can either provide one .spec file that generate >>>>> both rpms or two separate spec files. >>>>> >>>>> The real question is how do we provide proper build for >>>>> this components. Currently it has poor-man-build, which I >>>>> fixed to meet some level of quality, instead of >>>>> ./configure&&make install, packager should go and figure >>>>> own what else needs to be built in tree. >>>>> >>>>> So either these are officially supported and should be >>>>> build properly using main build system, example: --- $ >>>>> ./configure --enable-plugin-auth-pam PAM_CFLAGS=... >>>>> PAM_LIBS=... --- >>>>> >>>>> Or have plugins as separate components with its own release >>>>> cycle and should have their proper own build system and >>>>> release cycle. >>>>> >>>>> I think that if we have proper interface >>>>> (openvpn-plugin.h), there is no sense in providing the >>>>> plugins within the tree, as it has its own release cycle. >>>>> >>>>> I also would like to discuss the "official" argument.... A >>>>> project can have several repositories all at equal >>>>> "official" level, why on earth people think that having >>>>> more than one repository around damage their "official" >>>>> state? "officially supported plug-ins", can be official in >>>>> the openvpn repository and can be official in their own >>>>> repository, there is absolutely no difference between the >>>>> two approaches in this regards. >>>>> >>>>> However, splitting the repositories, allow helping distro >>>>> packaging in determine what needed to be packaged and >>>>> provided to users, it also allow separate release cycle >>>>> (new openvpn release does not force new plugin release), >>>>> and can even help in maintenance as a plugin can have its >>>>> own maintainer (commit access). >>>>> >>>>> If also has more advantage as now in github we can >>>>> encourage people to host and maintain their plugin within >>>>> the OpenVPN organization, attracting more skills. So bottom >>>>> line: >>>>> >>>>> 1. Either we add the plugins to core build system, with its >>>>> disadvantages. >>>>> >>>>> 2. Split plugins into their own repository, release cycle, >>>>> packaging. >>>>> >>>>> I am for (2), as I don't afraid of the "official" argument >>>>> nor do I afraid to commit to more than one repository, and >>>>> the modular nature of the plugin interface allows optional >>>>> components to be installed separately along with their own >>>>> dependencies. >>>>> >>>>> Alon >>>> I think there's some very good argumentation here. In my >>>> view, separating plugins into their own repositories would >>>> have some important advantages; excuse me for repeating some >>>> of Alon's arguments here: >>>> >>>> 1) Delegating maintenance tasks easily to (new) developers: >>>> this is now trivial with GitHub 2) Avoid having to make an >>>> OpenVPN release due to an important fix in a plugin used by >>>> few. This also helps distro packagers, provided they didn't >>>> bundle the plugins in their core "openvpn" package >>>> >>>> Afaik none of the official plugins are needed to create the >>>> official Windows installers, so that platform is entirely >>>> unaffected. On *NIX side we only release source code. If we >>>> don't want to force people to fetch official plugin code >>>> using Git, providing tarballs would be trivial. >>>> >>>> I tend to agree that packagers should take care of packaging >>>> the plugins as they see fit and making sure they're >>>> compatible with their version of OpenVPN. For example, on >>>> Debian/Ubuntu the OpenVPN package includes "down-root" and >>>> "pam" plugins by default. However, I've never used those, and >>>> I know many others who don't either. Having the plugins in >>>> separate repositories would steer packagers to the (in my >>>> opinion) right direction of packaging optional functionality >>>> as optional packages. They already do this for some of the >>>> off-tree plugins: >>>> >>>> <https://community.openvpn.net/openvpn/wiki/RelatedProjects> >>>> >>>> I believe the primary reason why the "pam" and "down-root" >>>> plugins are in OpenVPN repository is that they seem to come >>>> from James, who has a use-case for them. Personally, I would >>>> rather see the plugins in their own repositories, even if >>>> only to see if it fosters collaboration. >>>> >>>> I guess that was my 5 cents :). >>>> >>>> -- Samuli Seppänen Community Manager OpenVPN Technologies, >>>> Inc >>>> >>>> irc freenode net: mattock >>>> >>> Hello, >>> >>> In order to break the fear I just went ahead and did this... >>> maybe this will relax some of the concerns... >>> >>> A plugin in own repository, own build system, own rpm packaging >>> of auth-pam[1] and down-root[2], even ebuilds[3][4]! >>> >>> Now we have the following packages for rpm based system: >>> >>> - openvpn - openvpn-devel (openvpn-plugin.h) - >>> openvpn-plugin-auth-pam (introduces the pam dependency) - >>> openvpn-plugin-down-root >>> >>> I've prepared a openvpn branch[5] to support this migration, I >>> think that the best example is to see how the rpm spec file >>> was simplified[6], no none standard statement, simple configure >>> and make process, less dependencies for core package. >>> >>> I think that in the Gentoo ebuild[7] we can see more verbose >>> example, especially the following statement that is about to be >>> removed: --- if ! use minimal ; then cd src/plugins for i in *; >>> do [[ ${i} == "README" || ${i} == "examples" || ${i} == "defer" >>> ]] && continue [[ ${i} == "auth-pam" ]] && ! use pam && >>> continue einfo "Building ${i} plugin" emake -C "${i}" >>> CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" done >>> cd .. --- >>> >>> I truly hope you see the advantage in building and packaging >>> each independent component by its own, the simplicity it >>> introduces in term of code maintenance and system >>> administration. Again, there is no impact of the official level >>> of the components. >>> >>> Best Regards, Alon Bar-Lev. >>> >>> [1] https://github.com/OpenVPN/openvpn-plugin-auth-pam [2] >>> https://github.com/OpenVPN/openvpn-plugin-down-root [3] >>> https://github.com/alonbl/alon-barlev-overlay/blob/master/net-misc/openvpn-plugin-auth-pam/openvpn-plugin-auth-pam-9999.ebuild >>> >>> [4] https://github.com/alonbl/alon-barlev-overlay/blob/master/net-misc/openvpn-plugin-down-root/openvpn-plugin-down-root-9999.ebuild >>> [5] https://github.com/alonbl/openvpn/compare/master...plugins >>> [6] >>> https://github.com/alonbl/openvpn/commit/0a9a1e1f234dcc81d4ed9ece5f894cfe5ec02d01#diff-0 >>> >>> [7[ https://github.com/alonbl/alon-barlev-overlay/blob/master/net-misc/openvpn/openvpn-9999.ebuild >> >> Hi Alon, >> >> Ok, so this is kind of a preview, which I think is fine. We >> should definitely look at these plugin repositories and see how >> it all fits together. I only got one minor nitpick... I think >> your own ("alonbl") GitHub repos would have been a more >> appropriate place for these plugin repositories for now, as >> they're not "officially" approved yet. >> >> -- Samuli Seppänen Community Manager OpenVPN Technologies, Inc >> >> irc freenode net: mattock >> > > Well, among others, the mission was to create a community around > openvpn with extras, so that people will find VPN resources at one > place...
Agreed. > What official or not, who is the maintainer of what, what level of > release and what the level of support should be documented in the > wiki or other place. We have not reached any agreement on splitting out the plug-ins or not. So putting them in an area which can be understood as a official repository is not okay. > If you want, I can remove these, no problem, but I needed to raise > these arguments. Please put them in your own repository, and what we put under the OpenVPN organisation part will be what we have as official repositories. kind regards, David Sommerseth -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+rtxkACgkQDC186MBRfro72wCfdfCRC4ck7lU+WWEtRqDr/NlY aoIAnRaTEieT/lFGr4abOUCb7ioFtY8o =Qr65 -----END PGP SIGNATURE-----