Hi,

Here's the summary of the previous IRC meeting.

---

COMMUNITY MEETING

Place: #openvpn-devel on irc.freenode.net
List-Post: openvpn-devel@lists.sourceforge.net
Date: Thursday 29th Nov 2012
Time: 18:00 UTC

Planned meeting topics for this meeting were on this page:

<https://community.openvpn.net/openvpn/wiki/Topics-2012-11-29>

Next meeting will be announced in advance, but will probably be on the same
weekday and at the same time. Your local meeting time is easy to check
from services such as

<http://www.timeanddate.com/worldclock>

or with

$ date -u


SUMMARY

cron2, dazo, ecrist, krzee, jamesyonan, mattock, novaflash, plaisthos,
raidz and swg0101 participated in this meeting.

--

Started the meeting with short round of introductions. Some were not
formally introduced, but are included here. On the community side:

- cron2: The OpenVPN IPv6+BSD+Solaris developer, buildbot farmer (Germany)
- dazo:  master of plugins and git, does patch management, cleanups and
lots of other good work (Norway)
- d12fk: develops the new openvpn-gui for Windows (Germany)
- ecrist: takes care of forums, easy-rsa maintenance, #openvpn channel,
etc. (Unites States)
- krzee: takes care of the forums and IRC with ecrist; a mystical figure
(somewhere in the Caribbean)
- plaisthos: did the Android port; in charge of overhauling the socket.c
code (Germany)

On the company side:

- jamesyonan: Father of OpenVPN (United States/Colorado)
- mattock: Community manager, server administrator, does OSS releases,
testing, etc. (Finland)
- novaflash: Support technician (Netherlands)
- raidz: Support engineer, network engineer, and janitor (United
States/California)
- swg0101: Support and development (United States)

A few non-participants were also mentioned:

- andj: Added polarssl support to openvpn and is maintaining that part
(Netherlands)
- juanjo: The other IPv6 guy who we seldom see (from where?)

---

Jamesyonan gave a short introduction of the new C++ codebase:

- about 30K lines of C++ code
- an object-oriented rethinking of openvpn from the ground up
- design similar to original OpenVPN 3.0:
<http://community.openvpn.net/openvpn/wiki/RoadMap>
- is very modular in the sense that SSL/crypto libraries, transport
protocols, etc. can be modularized
- fairly prototypical/incomplete at this stage; only the client-side has
been implemented
- has been tested against Access Server (based on OpenVPN 2.1.x) and
OpenVPN 2.3* servers
- is 100% protocol compatible with 2.x branches
- has most 2.x's options
- is being used in the OpenVPN tech android client and the upcoming iOS
client
- may (at some point) supplant the 2.x branch, but that'll probably take
at least 1-2 years

Some more technical tidbits:

- core leverages on Boost Asio as it's async i/o layer
- C++ is really ready for prime time in system programming / networking
space
- C++ 2003 that's used seems to work very well on different compilers
- C++ static polymorphism (templates) is great for network programming
where we have small objects that have polymorphic properties, such as
IPv4 vs IPv6 addresses

---

Discussed open sourcing the C++ codebase:

According to jamesyonan, the plan is to release this probably under GPL
within the next couple months, but the company needs the ability to
relicense the C++ core because of (Apple) app store issues. It was
agreed that having OpenVPN on that platform is a must. To accomplish
this, relicensing the codebase is necessary. The consensus was that this
can be done in a way that's acceptable to all parties, without resorting
to the classic "copyright handover" scheme, which was not ok for everyone.

The alternative would be to release the C++ codebase under a permissive
license (e.g. BSD), but that would allow companies such as Apple or
Microsoft to "steal" it. This was not seen as a good option, either.

---

Discussed the role of OpenVPN 2.3 within the company:

The company is planning to migrate the Access Server to OpenVPN 2.3*.
Before the meeting mattock had already managed to get the Access Server
running with OpenVPN-2.3-rc1 in a few hours, with only few minor
modifications. Tests run by raidz during the meeting revealed no further
issues. More details will follow later.

---

Discussed having a joint company/community meeting in FOSDEM
(https://fosdem.org/2013). Most of the present developers seem to be
coming, but nobody has dared book the flights or hotel yet.

---

Decided to arrange a second meeting next Thursday at the same time. The
meeting will focus on helping James move to 2.3 and Git (from 2.1.x and
SVN).

---

Full chatlog as an attachment

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock


mattock_ 20.14.15
ah, finally
damn empathy 20.14.17
it disconnected without saying anything 20.14.33
everyone set? 20.14.46
 
dazo 20.14.49
heh ... been talking for your self?     

mattock_ 20.14.51
yeah    

krzee 20.14.52
*is here from work, so in and out depending on how busy it is*  

mattock_ 20.14.53
        

ecrist 20.15.13
*too*   

dazo 20.15.30
d12fk might appear as well, but I don't think we should wait for him now ... 
we're 15 min past already  

mattock_ 20.15.34
ok, so here are today's topics: 
https://community.openvpn.net/openvpn/wiki/Topics-2012-11-29    

vpnHelper 20.15.35
Title: Topics-2012-11-29 – OpenVPN Community (at community.openvpn.net) 

dazo 20.15.50
everyone from the company present?      

novaflash 20.16.05
i am present    

raidz 20.16.10
here    

novaflash 20.16.13
james appears to be present as well, and raidz as well  

raidz 20.16.16
jamesyonan      

cron2 20.16.23
 /whois novaflash?      

novaflash 20.16.30
an idiot
i mean.. err.. 20.16.32
 
raidz 20.16.37
introduce yourself johan        

novaflash 20.16.38
one of the support techs at openvpn technologies        

cron2 20.16.51
(sorry if I missed the introduction, I'm not always paying close attention)     

novaflash 20.17.00
that's okay i don't think i ever did introduce myself here
i just sort of sidled in 20.17.07
sneakily 20.17.11
 
cron2 20.17.18
now done  - welcome to the secret society       

novaflash 20.17.31
*does secret handshake* 

mattock_ 20.17.59
novaflash: btw. where do you live? besides the IRC channel, that is...  

novaflash 20.18.08
i'm in the netherlands  

mattock_ 20.18.20
yeah, I thought so      

cron2 20.18.35
fun.  So how big is OpenVPN tech?       

novaflash 20.18.41
so i usually am the one answering tickets and questions in #openvpn-as while 
raidz and co and dreaming of unicorns and fairies  

raidz 20.18.59
there are about 7 of us cron2   

novaflash 20.19.01
7 billion people working in the company at the moment!  

raidz 20.19.04
we are a small bunch    

cron2 20.19.46
I assumed so, but sometimes you guess wrong, and that sounded like "having 
support force round the world, in all time zones!!"  

dazo 20.19.54
So, raidz, novaflash, jamesyonan and mattock_ are the company guys here now, 
right?     

raidz 20.19.58
hahaha  

novaflash 20.20.12
*checks list of nicks in the channel*
yes. 20.20.14
i think so 20.20.31
 
raidz 20.20.39
correct dazo    

mattock_ 20.20.40
raidz: have you ever formally introduced yourself?      

novaflash 20.20.56
introduce yourself raidz        

raidz 20.20.58
I have a feeling people recognize me, but in case you don't:    

cron2 20.21.02
I think he has
he's the one breaking stuff @ company all day 20.21.15
 
raidz 20.21.17
I am OpenVPN's support engineer, network engineer, and janitor  

cron2 20.21.23
what I said     

raidz 20.21.29
We wear a lot of hats around here 
exactly cron2! 20.21.38
 
novaflash 20.21.51
raidz is selling himself short, he's also a ladies man - with a girl on each 
finger     

raidz 20.22.03
not anymore! Just 1 now!        

mattock_ 20.22.13
shall I give a "flash introduction" of the community guys?      

novaflash 20.22.14
oh what a tragic accident, just one finger?     

dazo 20.22.23
mattock_: makes sense   

mattock_ 20.22.30
ok      

raidz 20.22.31
mattock_: I think I know most of the people in here, but I think it would be 
nice
in case any of us don't 20.22.39
 
cron2 20.22.50
+1      

mattock_ 20.23.20
andj added polarssl support to openvpn and is maintaining that part... lives in 
Netherlands     

krzee 20.23.28
are the corp guys here?  (besides james / mattock)      

mattock_ 20.23.41
cron2 is one of the IPv6 guys, from Germany     

cron2 20.23.44
*points krzee at "20 lines up"* 

novaflash 20.23.45
krzee: james, mattock, me, raidz.       

krzee 20.23.57
oh whoa, i didnt know you were corp     

mattock_ 20.23.59
then there's the other IPv6 guy who we don't see much (juanjo)  

novaflash 20.24.09
krzee: surprise 

raidz 20.24.12
krzee: we are pretty much it, I am not sure if Francis will make it or not, I 
don't think he knows how to use IRC
20.24.18
 
cron2 20.24.21
*g*     

mattock_ 20.24.22
d12fk: is developing the new openvpn-gui for Windows and is also from Germany   

krzee 20.24.27
heh     

novaflash 20.24.31
good, keep it that way, because i say way too many crazy shit on IRC    

mattock_ 20.24.47
ecrist is taking care of forums, easy-rsa maintenance, #openvpn channel, etc. 
and is from the States    

raidz 20.24.49
I thought cron2 was the ipv6 guy mattock_       

mattock_ 20.25.00
ender can introduce himself 
raidz: he's one of them, the active one 20.25.07
 
novaflash 20.25.08
raidz: that's what he said      

cron2 20.25.16
raidz: I did "IPv6 payload", juanjo did "IPv6 transport"        

novaflash 20.25.22
ahh.    

mattock_ 20.25.24
keitsi can also introduce himself       

plaisthos 20.25.28
sup     

cron2 20.25.29
both together form "IPv6 support" 
keitsi? 20.25.35
 
mattock_ 20.25.48
krzee is also working on forums and IRC like krzee, and I believe he's 
currently somewhere in the Caribbean     

raidz 20.25.48
ahh     

plaisthos 20.25.54
I managed to get here a bit earlier (reading backlog now)       

cron2 20.26.10
and plaisthos is the community janitor  

mattock_ 20.26.27
plaisthos has done the Android port of OpenVPN and has been pretty active here
that's it I guess 20.26.32
 
cron2 20.26.34
cleaning up some damp and smelly stuff inside socket.c  

krzee 20.26.49
<-- pirate of the caribbean ;]  

raidz 20.26.56
Nice to re-meet/meet you all!   

mattock_ 20.27.04
plaisthos: +5 for cleaning up the scary parts   

cron2 20.27.05
and dazo is the master of plugins and git       

novaflash 20.27.17
plaisthos is arne schwabe?      

mattock_ 20.27.19
ah yes, did I somehow manage to skip dazo
? 20.27.24
 
cron2 20.27.25
easy to overlook        

mattock_ 20.27.29
uh      

cron2 20.27.32
novaflash: yes  

novaflash 20.27.36
gotcha  

plaisthos 20.27.37
novaflash: yes  

novaflash 20.27.40
gotcha  

mattock_ 20.27.41
also from Germany?      

dazo 20.27.42
I'd like to add that plaisthos is also in charge of overhauling the often 
feared socket.c code  

raidz 20.27.42
how did you manage to skip dazo?!       

krzee 20.27.50
+5 more for how awesome plaisthos's android client is   

dazo 20.27.59
*considers to get grumpy on mattock_ *  

cron2 20.28.05
raidz: he's hardly saying anything on IRC these days, so we tend to forget him  

raidz 20.28.11
ouch    

mattock_ 20.28.14
so, dazo is taking care of patch management, cleaning up the codebase and in 
general doing lots of good work
from Norway 20.28.18
 
cron2 20.28.21
or maybe mattock's IRC client is just ignoring dazo     

novaflash 20.28.37
poor dazo       

dazo 20.28.42
heh ... too much noise from me  

krzee 20.28.43
from norway by way of .cz
20.28.46
L'utente swg0101 è entrato nella stanza 20.28.51        

novaflash 20.28.56
i hope some of openvpn's donations go to dazo's mental healthcare. those pills 
can't be cheap.  

plaisthos 20.28.58
*is from germany*       

novaflash 20.28.59
oh hello swg0101        

raidz 20.29.01
oh, here is one more company guy: swg0101       

swg0101 20.29.05
hey...  

mattock_ 20.29.07
hi swg0101      

swg0101 20.29.15
everyone is coughing here so I stepped away for a bit
now hopefully I don't get sick 20.29.34
 
mattock_ 20.29.44
swg0101: you're from somewhere near San Francisco?
Bay area 20.29.48
 
swg0101 20.29.52
in Davis        

cron2 20.29.54
swg0101: so what are you doing? 

novaflash 20.30.02
yes and he's got brains the size of my balls. wait that didn't come out quite 
right...  

swg0101 20.30.05
I am doing cronjobs... haha, jk         

cron2 20.30.25
*has the feeling that "cronjobs" means work*    

novaflash 20.30.33
he's in support and development - he figures out the really gritty problems 
some of our clients have and proposes fixes 

krzee 20.30.40
swg0101, im from the bay originally     

swg0101 20.30.48
yes, krzee is krzee     

mattock_ 20.30.56
krzee has no real name afaik
he's just krzee 20.31.00
 
swg0101 20.31.08
you are krzee   

krzee 20.31.10
this is true, krzee is my name  

mattock_ 20.31.13
I don't think he has an email address, either
20.31.18
 
novaflash 20.31.18
you're all a little krzee       

mattock_ 20.31.31
mkay, are we done with introductions?   

krzee 20.31.34
the publishing company of JJK's book didnt like that i have no real name lol    

swg0101 20.31.35
so what are we talking about?   

mattock_ 20.31.42
swg0101: https://community.openvpn.net/openvpn/wiki/Topics-2012-11-29   

vpnHelper 20.31.43
Title: Topics-2012-11-29 – OpenVPN Community (at community.openvpn.net) 

novaflash 20.31.44
the topics are here
https://community.openvpn.net/openvpn/wiki/Topics-2012-11-29 20.31.45
 
swg0101 20.32.03
fun stuff       

novaflash 20.32.12
i am seeing openvpn c++ here, i think it that's different from what openvpn has 
been up till now?
i assume it was python before and now c++ ? 20.32.23
 
mattock_ 20.32.30
james could probably start by explaining what the C++ thingy is, and what 
should we do about it
jamesyonan: shall you do the honors? 20.32.58
 
jamesyonan 20.33.12
yes, basically I've been working for a while on a new openvpn core that might 
(at some point) supplant the 2.x branch
it's fairly prototypical at this stage 20.33.27
it's ~ 30K lines of C++ code 20.33.42
 
swg0101 20.33.53
jamesyonan: is that the core that you are working on that allows for different 
transport protocols on top of OpenVPN?   

jamesyonan 20.34.07
yes, among other things 

swg0101 20.34.12
very interesting        

jamesyonan 20.34.49
it is very modular in the sense that SSL/crypto libraries, transport protocols, 
etc. can be modularized 

krzee 20.34.55
is it being built with the 3.0 roadmap in mind?
sounds like a yes ^ 20.35.00
 
jamesyonan 20.35.17
basically yes, but it's still incomplete at this point
right now it's just a client 20.35.27
 
krzee 20.35.48
(for anyone not familiar, http://community.openvpn.net/openvpn/wiki/RoadMap )   

vpnHelper 20.35.51
Title: RoadMap – OpenVPN Community (at community.openvpn.net)   

jamesyonan 20.35.53
it's being used in the OpenVPN tech android client and the upcoming iOS client  

novaflash 20.36.20
neat.   

cron2 20.36.30
hah, he said the word   

raidz 20.36.41
        

novaflash 20.36.57
supercallifragilisticexpialidocious then        

krzee 20.37.18
hows it licensed?       

jamesyonan 20.37.58
the plan is to release this probably under GPL within the next couple months    

mattock_ 20.38.31
jamesyonan: I would suggest "in FOSDEM" 

novaflash 20.38.45
i am not familiar with fosdem?  

mattock_ 20.39.07
you could give an introduction of it there      

cron2 20.39.10
that's an open source conference in brussels, early february    

dazo 20.39.11
novaflash: http://fosdem.org/2012/      

plaisthos 20.39.15
jamesyonan: with a contributer agreement? So you can merge changes to iOS and 
the android client base?  

mattock_ 20.39.16
https://fosdem.org/2013/        

vpnHelper 20.39.19
Title: fosdem.org (at fosdem.org)
Title: FOSDEM 2013 - Home (at fosdem.org) 20.39.21
 
jamesyonan 20.39.25
but bear in mind that this is a new code base, and is still far from being a 
drop-in replacement for 2.x        

novaflash 20.40.19
so, FOSDEM is an event, not a license type?     

mattock_ 20.40.24
yeah    

krzee 20.40.25
novaflash, correct      

novaflash 20.40.28
righto
when i went to the frontpage i saw beer mentioned 20.40.41
so they've got me sold 20.40.44
 
cron2 20.41.03
.nl->brussels is a nice train trip, andj and jjk did this last year     

novaflash 20.41.14
jan just keizer?
yes i don't think brussels is too far, it can be done 20.41.30
 
jamesyonan 20.41.44
you guys are lucky that you have trains 

cron2 20.41.45
novaflash: yeah, we all met last year at fosdem, first ever face-to-face 
meeting.  Very goood.  

dazo 20.41.47
what is this rumour about "contributor agreement"?      

novaflash 20.42.12
jamesyonan: europe is interesting in that it has so much stuff so close 
together.       

cron2 20.42.21
dazo: well, it's a logical consequence: you can't release iOS code under GPL - 
so if that code is open sourced, and you want people to be able to contribute 
back, you need them to accept re-releasing it under a non-GPL license      

mattock_ 20.42.51
there are other ways to handle the copyright ownership issues which iOS 
requires        

novaflash 20.42.52
hm. apple restricting GPL eh?   

mattock_ 20.42.55
none of them are pretty 

cron2 20.42.57
(stupid Apple and Microsoft store license shit, but we *need* OpenVPN on these 
platforms)       

mattock_ 20.43.17
so we need to somehow minimize damages to everyone involved     

cron2 20.43.20
novaflash: Apple store requires "receiver must not modify", GPL requires 
"receiver must receive source and all rights to modify".  Incompatible 

novaflash 20.43.30
gotcha. 

jamesyonan 20.43.36
right, basically we need the ability to relicense the C++ core because of app 
store issues      

krzee 20.43.37
openvpn on native ios will be a pretty fat win  

mattock_ 20.43.45
there are other options besides contributor agreements
but some version of openvpn needs to "compatible" with iOS policies 20.44.13
 
plaisthos 20.44.16
BSD license but I can understand if OpenVPN Corp does not want a BSD licensed 
OpenVN core       

novaflash 20.44.24
perhaps if we promise to bring Steve Jobs back to life, Apple will allow us a 
more flexible licensing method.   

mattock_ 20.44.28
plaisthos: exactly      

dazo 20.44.47
well, I can understand that argument ... from a business perspective .... I can 
even agree to a kind of contributor agreement that permits re-licensing to 
Apple and Microsoft stores ... but if the agreement requires copyright 
handover, then I'm fairly sceptical and will probably drop out instantly      

jamesyonan 20.45.09
no, we're certainly not asking for copyright handover   

cron2 20.45.25
the agreement would need to be worded carefully to keep the GPL stuff GPLed, 
and just permit extra licensing    

jamesyonan 20.45.34
we just need the ability to relicense if necessary      

dazo 20.45.47
fair enough     

cron2 20.45.48
*is fine with that*     

mattock_ 20.46.38
nobody really _wants_ those pesky agreement and bureaucracy... they basically 
hurt everyone (in our situation)  

dazo 20.46.39
jamesyonan: when you have a draft ready, I can check if the GPL lawyer at my 
work have time to review it and comment it 

novaflash 20.46.47
the open source project must of course be kept intact, and not have some 
apple/microsoft bozos stealing it all.
mattock_: yeah agreed. but best to have it covered. 20.47.11
 
jamesyonan 20.47.22
dazo: sure      

mattock_ 20.47.46
dazo: oh yes, you have GPL lawyers at RedHat    

novaflash 20.48.14
that's pretty supercallifragilisticexpialidocious       

mattock_ 20.48.46
jamesyonan: perhaps you could share a word about the architecture of the C++ 
codebase... it should help limit the scope of any copyright ownership issues    
   

swg0101 20.48.48
dazo works at RH?       

dazo 20.48.50
 mattock_ yeah, Richard Fontana is quite into this stuff        

mattock_ 20.48.51
yes     

dazo 20.48.53
swg0101: I do   

swg0101 20.48.59
interesting
security team? 20.49.07
 
novaflash 20.49.20
dazo: he will now try to obtain your company secrets by squeezing your brain 
like a lemon.      

swg0101 20.49.37
easy peasy lemon squeezy so they call   

jamesyonan 20.49.38
no, as long as openvpn is under GPL, none of the big guys can really steal it   

dazo 20.49.59
swg0101: actually, no ... openvpn is one of my spare time projects ... I'm 
doing real time kernel QA and development of related test tools      

jamesyonan 20.50.24
ok, let me give a short primer on the new C++ code base 

dazo 20.50.38
+1      

mattock_ 20.50.53
jamesyonan: that's a valid point... companies like Apple would probably steal 
the code the very instant it was released under a BSD license     

raidz 20.51.07
^^^     

jamesyonan 20.52.00
right, BSD license would allow any company to create a proprietary fork 

novaflash 20.52.21
GPL with permissions in specific cases for relicensing would still seem to be 
the best option   

jamesyonan 20.52.30
but I don't see that this could be done with GPL
and I think we've seen cases in the past, where the big guys have tried to 
shred the GPL 20.53.29
MS called it a "cancer" at one point 20.53.40
but I think it has proved it's resiliancy at preventing proprietary forks 
20.54.06
 
dazo 20.54.06
yupp    

novaflash 20.54.19
if microsoft hates it, i love it already        

krzee 20.54.45
http://en.wikipedia.org/wiki/Viral_license    "The term is most often used to 
describe the GPL, which requires that any derivative work also be licensed with 
the GPL." 

vpnHelper 20.54.46
Title: Viral license - Wikipedia, the free encyclopedia (at en.wikipedia.org)   

jamesyonan 20.55.57
so the C++ core is basically an object-oriented rethinking of openvpn from the 
ground up
the core leverages on Boost Asio as it's async i/o layer 20.56.38
 
mattock_ 20.57.08
http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio.html   

jamesyonan 20.57.09
rather than sort of roll it's own async i/o layer as the 2.x branch does        

vpnHelper 20.57.10
Title: Boost.Asio - 1.52.0 (at www.boost.org)   

jamesyonan 20.57.35
Asio is really great
C++ is an interesting animal 20.58.29
 
dazo 20.59.01
heh ... that's a nice way to put it     

mattock_ 20.59.12
I've heard everyone loves C++
20.59.15
 
cron2 20.59.22
interesting way to word it... (I've never liked C++, especially from a sysadmin 
perspective it's higly annoying that half the source doesn't compile with half 
the compilers...)        

novaflash 20.59.29
i've heard it's better than B++ 

jamesyonan 20.59.32
I would have to say that I was originally very sceptical that C++ would be a 
good systems programming language  

swg0101 20.59.35
lol
x++ 20.59.42
; 20.59.51
 
jamesyonan 21.00.15
but here are some of the points that won me over...
I remember back in maybe '06 I gave C++ a trial run for a network project I was 
working on 21.01.05
I used whatever gcc was current at the time, linked in boost Asio, and ran some 
benchmarks 21.01.35
this was a very simple server app, sort of like a very basic HTTP server 
21.01.54
it's a program that would have been 60KB written in C but it ended up linking 
at 600KB in C++ and being several times slower than equivalent C 21.02.49
 
cron2 21.03.22
now *that* doesn't truly convince me yet        

krzee 21.03.31
lol     

jamesyonan 21.03.37
then several years layer, maybe around '11 I gave C++ another shot
this time I used the latest boost and gcc 4.6 21.04.03
what I discovered is that some really serious optimization work had gone into 
gcc (and LLVM as well) 21.05.06
 
plaisthos 21.05.14
*outs himself as C++ programmer too*    

jamesyonan 21.05.55
for example, the compiler people figured out a really cool way to deal with C++ 
exceptions so that they didn't incur any overhead unless they are thrown        

cron2 21.06.09
plaisthos: if you ever need a new job, one of my customers is doing quite a lot 
of C++ and Java         

raidz 21.07.09
        

jamesyonan 21.07.28
I was quite amazed that I could write very clean, abstracted network code using 
gcc 4.6 + boost asio and the code size had come down to ~ 60 KB and the 
compiler seemed to really factor out all the abstraction so the resulting 
generated code was very efficient     

plaisthos 21.07.38
llvm guys also figured out how to give you good error messages (:       

jamesyonan 21.08.36
yes, llvm is looking good, but it still seems slightly behind gcc on generating 
fast code from C++
but in any event, I think C++ is really ready for prime time in the kind of 
system programming / networking space that openvpn is in 21.09.18
some other things I like about modern C++ ... 21.09.43
it's a very-well standardized language across the different major compilers, 
i.e. gcc, llvm, visual studio, etc. 21.10.30
 
mattock_ 21.10.49
hmm, even visual studio... that's something     

jamesyonan 21.10.49
now granted, I am using C++ 2003 for this project -- haven't ventured into '11 
yet
I wrote ~20K lines before I even tested it on visual studio 21.11.17
and I think it took under a couple hours to get it building and running with VS 
21.11.51
 
cron2 21.12.12
that is definitely a plus       

novaflash 21.12.32
yeah a C plus plus (groan)      

jamesyonan 21.12.36
so let me get into some of the features of C++ that I think make it well-suited 
for use as a basis for OpenVPN
C++ is one of the few languages that supports both static and dynamic 
polymorphism 21.13.21
dynamic polymorphism via virtual functions 21.14.03
and static polymorphism via templates 21.14.18
 
ecrist 21.15.36
are you suggesting a switch, completely, from C to C++? 

jamesyonan 21.15.44
templates are great for network programming, because we have a lot of cases 
where we have small objects that have polymorphic properties, such as IPv4 vs 
IPv6 addresses
I think it makes a lot of sense for OpenVPN 3 to be C++ 21.16.16
 
ecrist 21.16.32
http://www.joelonsoftware.com/articles/fog0000000069.html       

vpnHelper 21.16.33
Title: Things You Should Never Do, Part I - Joel on Software (at 
www.joelonsoftware.com)        

jamesyonan 21.16.38
but I think the 2.x branch should remain in C   

ecrist 21.17.25
dazo pointed me to that doc     

mattock_ 21.17.39
ecrist, dazo: complements, excellent article    

ecrist 21.17.49
I'd be afraid 3 would never be released 

cron2 21.18.11
*tends to agree on both extents - "rewriting 2.x into C++" is likely to be more 
effort than "doing it fresh from the start and adding features on the go"*
or so 21.18.14
 
ecrist 21.18.14
and what did potentially get released would be riddled with bugs that were 
already solved, or simply not a problem, in our current code base    

jamesyonan 21.18.21
I think it's an interesting article, but I disagree with it     

novaflash 21.18.27
ecrist; at the moment jamesyonan has a prototypical version that is already 
functioning in c++ as the client in android and now ios.
or when it is released anyways (for iOS i mean) 21.18.41
 
ecrist 21.18.56
novaflash: I'm aware    

jamesyonan 21.19.05
yes, the C++ core is already in production      

cron2 21.19.25
what you can't do is "stop 2.x, rewrite everything, and stall until 3.x is 
ready" - *that* would be a major mistake     

ecrist 21.19.26
but untested relative to the community code base        

cron2 21.19.33
ecrist: no, it works nicely     

jamesyonan 21.20.00
well actually the C++ core, because it's only a client, ALWAYS connects to an 
OpenVPN 2.x server        

cron2 21.20.04
ecrist: I've given it enough beating that I would be happy for my customers to 
use it, against a 2.3RC1 server
and what james says 21.20.32
 
jamesyonan 21.20.48
cron2 has worked with us on testing the new iOS client  

cron2 21.20.49
jamesyonan: do you test C++ -> 2.1/AS or vs. 2.3?       

jamesyonan 21.21.03
both    

krzee 21.21.27
from our previous talks, a lot of 3.0 would need to be re-write anyways 

cron2 21.21.36
yeah    

novaflash 21.21.41
the OpenVPN Android client that jamesyonan made is capable of working for both 
the open source server and the access server     

raidz 21.21.59
same goes for ios       

krzee 21.22.00
to account for making it modular, which sounds to be a lot of what this new 
core aims for       

jamesyonan 21.22.15
yes, the new C++ core is 100% protocol compatible with 2.x branch       

ecrist 21.22.27
is it feature-complete? 

jamesyonan 21.22.55
no, it doesn't have all of the 2.x options
but it has most of them 21.23.17
 
raidz 21.23.25
jamesyonan: will it have them all?      

plaisthos 21.23.35
Having worked with the socket.c code I must say I would not aim at having all 
options
some of them are very disruptive 21.23.46
 
cron2 21.23.47
*expected that comment *        

jamesyonan 21.24.06
it could -- right now I believe fragment option is not implemented
yeah, the new code base doesn't even have a socket.c-like source file 21.24.52
because Asio handles the i/o layer 21.25.06
 
ecrist 21.25.19
what about the MTU and mssfix bits?     

plaisthos 21.25.19

I got to get going 21.25.32
have to leave you guys 21.25.45
 
novaflash 21.25.47
bye plaisthos   

swg0101 21.25.51
cya     

jamesyonan 21.25.51
mssfix isn't there now, but it's on my short list of things to add
bye plaisthos 21.26.04
 
cron2 21.26.51
james: I did mssfix for IPv6 today.  If you're working on that, you might want 
to look at it  - haven't sent the patch yet, but it's working on our corp VPN 
server
http://public.greenie.net/gert/misc/ipv6-mss-diff2.txt 21.26.59
 
jamesyonan 21.27.11
cool    

plaisthos 21.27.15
jamesyonan: One last question before I go. My client is currently named 
"OpenVPN for Android". At the time I first named the client I did not give it 
much thought. I have later realized that the name might sound  "official". If 
you do not like this I can change the name  

jamesyonan 21.27.59
no, I don't think that's really necessary       

raidz 21.28.18
plaisthos: Love your client btw         

jamesyonan 21.28.29
we tend to brand the OpenVPN Tech products with "OpenVPN Connect" anyway        

novaflash 21.29.11
and in future releases of access server we'll probably have links to the 
openvpn tech versions for android and ios anyways
at least, that's what i'd expect 21.29.19
 
plaisthos 21.29.31
raidz: thanks
jamesyonan: okay thanks bye 21.29.40
 
jamesyonan 21.29.55
see ya  

mattock_ 21.30.11
jamesyonan: you mentioned that the C++ codebase is still very far from being a 
replacement for 2.x
so we'll be living with the original code for quite a while 21.30.27
 
novaflash 21.30.37
2.* will continue       

cron2 21.30.59
mattock_: it has no server side yet     

jamesyonan 21.31.07
yes, it's much closer to being a client-side replacement, but the server side 
will take more development        

mattock_ 21.31.15
today I tried merging some of your SVN patches to Git, and it wasn't pretty     

jamesyonan 21.31.34
snappy? 

mattock_ 21.31.44
I think we're past the point where we "should move" to 2.3, and are in "need to 
move a.s.a.p."
yes, that and all others actually 21.31.50
snappy is probably the worst of the bunch 21.31.59
 
novaflash 21.32.11
the new compressor?     

mattock_ 21.32.17
yep     

novaflash 21.32.34
ironic that a name like snappy should take much time to get integrated. 

jamesyonan 21.33.06
snappy is really great though -- I don't know if you've looked through the 
source       

swg0101 21.33.15
Google's implementation?        

jamesyonan 21.33.22
this is what google uses company-wide as its main compressor    

swg0101 21.33.46
would be curious to see if it makes good performance differences
perhaps with aes-ni 21.33.54
 
mattock_ 21.36.34
jamesyonan: can you port the patches I sent you for 2.3?
I could then do more testing with 2.3 with those patches included 21.36.45
 
jamesyonan 21.37.02
the snappy patch?       

mattock_ 21.37.22
all of the patches, except r8129
that one was fairly trivial to port 21.37.32
the first problem is that files have been moved around 21.37.41
e.g. 21.37.44
init.c -> src/openvpn/init.c 21.37.50
that's trivial, but doesn't do the trick anymore, too many changes/cleanups in 
2.3 21.38.10
so manual merging is necessary for all patches 21.38.31
 
jamesyonan 21.38.31
ok, I'll take a look at it      

mattock_ 21.39.22
jamesyonan: how is your 2.3-fu? meaning, should we arrange a meeting where we 
take a look at what's exactly has change since 2.1.x?     

jamesyonan 21.39.25
yes, we are planning to migrate to 2.3 for the next version of AS       

mattock_ 21.39.45
in fact, I did some tests on openvpn 2.3-rc1 and AS, and got the thing running  

novaflash 21.39.47
AS 1.9?         

jamesyonan 21.39.53
yes, that would make sense      

mattock_ 21.39.54
with fairly minimal modifications       

cron2 21.39.58
mattock: oh, that's cool        

jamesyonan 21.40.05
novaflash: yes  

novaflash 21.40.18
neat. i mean, cool.     

mattock_ 21.40.26
I thank dazo for keeping Git in sync with SVN for this long... for the missing 
patches, I don't blame him for dropping the ball 
Alon's buildsystem work made merging much more difficult 21.40.55
 
dazo 21.41.07
heh ... no it just got too complicated to merge it in for me ... well, I could 
do it ... but it would require a lot of analysing of each conflict       

mattock_ 21.41.35
jamesyonan: "yes, that would make sense" ... was this a response to the meeting 
suggestion?     

dazo 21.41.43
on the plus side ... alons build system now works fairly well on cross-compiles 
and cross-platform stuff, I htink       

jamesyonan 21.41.47
yes     

cron2 21.41.47
*grumbles quietly about the build system accident^Wrevolution*  

mattock_ 21.41.53
dazo: yes, that's correct, it's pretty good
best buildsystem so far 21.42.17
 
cron2 21.42.18
some parts are great, but rearranging all the source tree was... "more 
religious than useful"   

mattock_ 21.42.44
...maybe if we rebuilt another buildsystem from scratch, then we could fix all 
the problems in the current one?         

dazo 21.43.13
cron2: to some extent, I can agree ... but the "everything in root dir" was 
also quite chaotic too      

mattock_ 21.43.27
I think the new layout is quite nice    

cron2 21.43.30
it's not so much the build system, as the "other changes" 
*hates it every time I look at stuff* 21.43.39
src/openvpn/ is just overdoing it for a single program, "src/" is fully fine, 
and "everything in toplevel dir" was good enough for me 21.44.14
but we digress - damage has been done, and it's easy to oppose something in 
hindsight 21.44.31
 
mattock_ 21.45.49
jamesyonan: as C++ codebase is not going to go server anytime soon, so what 
about 2.4?
moving AS to 2.3 should be _fairly_ painless 21.46.06
then we have 2.4 release cycle coming up 21.46.15
what is our strategy regarding it? 21.46.24
"what drives us forward with 2.4" 21.47.06
 
jamesyonan 21.47.18
yes, don't see the C++ codebase as altering the evolution of 2.x branch for a 
least another year or two
my attitude is that the C++ codebase should prove itself in multiple areas 
before it is embraced en-mass 21.49.03
 
mattock_ 21.49.16
will 2.4 be mostly about cleanups/stabilization, or do we (=the project) have 
some other agenda?        

dazo 21.51.11
well, plaisthos does a lot of code clean-up in socket.c ... and we have a lot 
of other clean-ups as well ... and it might be we try to modularise other 
things better as well   

mattock_ 21.51.33
I'm thinking of removing rarely used options    

dazo 21.51.34
but some important things I hope we can sort out with 2.4 is listening to 
multiple ports and protocols  

mattock_ 21.51.40
i.e. historic baggage   

novaflash 21.51.54
multiple cores? *hopeful*       

cron2 21.51.56
mattock: what you consider historic baggage might be the reason why people are 
using OpenVPN...         

mattock_ 21.52.10
cron2: I hear you complaining about too many options 
but you're right 21.52.20
 
dazo 21.52.29
novaflash: nope, that won't fit into 2.4 .... going from single thread to 
multi-thread requires a too massive change now        

mattock_ 21.52.30
so we'd need to identify what's just baggage, and what's being used     

cron2 21.52.41
indeed, we have way too many options, but sometimes you find yourself in a 
corner and all that helps is one of the more obscure options...      

mattock_ 21.52.51
lol     

novaflash 21.53.06
dazo: i have to admit, knowing how openvpn works, it's best to leave the multi 
core handling outside of it      

jamesyonan 21.53.28
why not preserve the options in 2.x branch and let 3.x be testing ground for 
removal of obsolete options        

cron2 21.53.28
dazo: oh, if someone comes along and finds a way to split encryption, 
decryption, crypto, and "the rest" into a handful of threads, I might be open 
to take a closer look...    

mattock_ 21.53.32
actually, I don't think not having multiple threads is that bad 

cron2 21.53.39
s/crypto/compression/
well, it limits performance... 21.53.54
 
novaflash 21.54.10
maybe not but it'd only really be of much use in very large deployments (where 
people use multiple openvpn processes anyways) and on systems with very low 
power but dual core cpu systems like atom systems.   

dazo 21.54.15
cron2: true ... but there's this nasty thing called CPU caching as well ... so 
to make that optimal, that will require some nasty analysing too 

jamesyonan 21.54.23
the C++ core supports multiple threads, HOWEVER, you really can't do fine 
grained threading and expect to see a performance gain        

mattock_ 21.54.25
one can have multiple processes, which, while heavier than threads are adequate 

cron2 21.54.39
my goals for 2.4 is "code overhaul to integrate IPv6 more nicely" (it's 
bolted-on right now - working but ugly) 

novaflash 21.54.44
agree with mattock_ .
cron2: seconded, ipv6 is hot right now 21.55.00
 
dazo 21.55.07
and the things with threading ... you loose performance instantly in the moment 
you have more high loaded threads than CPU cores available      

cron2 21.55.12
dazo: well, that speaks for "two threads" (one for incoming, one for outgoing 
packets)...       

dazo 21.55.21
cron2: agreed   

cron2 21.55.36
and you don't loose if you do not synchronize around too much...  (maybe a 3rd 
thread for handshaking)
but I'm not writing it - not enough experience with writing threaded code to 
feel comfortable about doing this in a security product 21.56.08
 
mattock_ 21.56.09
we actually have one more important topic today:
"Joint company/community meeting in FOSDEM in Bruessels" 21.56.19
jamesyonan: we insist you come there 21.56.35
 
novaflash 21.56.38
perhaps it's best to take small but important steps with 2.*, and big steps in 
3 ?      

cron2 21.56.39
novaflash: it's in, and it's working, but it's missing some bells and whistles, 
and needs polishing     

novaflash 21.56.50
mattock_: that would be so cool, having james here      

jamesyonan 21.56.56
yes, I'm going to try to be there       

cron2 21.57.06
cool    

dazo 21.57.12
I'm trying to get the bookings done this or next week   

novaflash 21.57.32
mattock_: do you know the exact date and shit?  

mattock_ 21.57.53
jamesyonan: if we can open source the C++ codebase by then, then your should 
_definitely_ be there and give a presentation of it        

cron2 21.58.04
novaflash: all on fosdem.org/2013/      

jamesyonan 21.58.09
yes, that's what I'm thinking   

dazo 21.58.14
novaflash: February 2-3 

novaflash 21.58.23
ah thanks, neato
oh hell! 21.58.38
 
mattock_ 21.58.39
also, the company should offer a nice dinner for everyone involved in the 
project       

novaflash 21.58.40
it's belgium!
beer! 21.58.48
 
mattock_ 21.58.50
        

jamesyonan 21.59.03
sure, great idea        

novaflash 21.59.05
okay, yes, i'm okay now.        

mattock_ 21.59.17
novaflash: that is most correct 

dazo 21.59.17
novaflash: I've been told that in Germany 7 beers counts as a dinner ...        

novaflash 21.59.17
i'll buy you guys some beer     

cron2 21.59.25
*will bring warmer shoes this time*     

dazo 21.59.35
*too*   

novaflash 21.59.36
cron2: did you go naked again?  

cron2 22.00.12
novaflash: nah, but last year they had a huge amount of snow, and the heating 
in the university buildings was... not up to it   

novaflash 22.00.19
yikes   

mattock_ 22.00.21
was there any heating?  

novaflash 22.00.39
yes, the beamer was on  

cron2 22.00.40
mattock: if you bring in 1000 open source zealots, there *is* heat.  But it 
wasn't enough       

dazo 22.00.59
it's the first conference I've been to where I saw plenty of geeks hacking in 
thick jackets ... not t-shirts    

novaflash 22.01.15
note to self: don't go naked
so um what's next on the agenda? 22.02.58
 
mattock_ 22.03.20
hmm, I guess we're mostly done  

cron2 22.03.41
we just need confirmation that dazo is happy and will now end his strike        

novaflash 22.03.51
he's on strike? 

dazo 22.03.51
hehe    

mattock_ 22.04.07
definitely      

novaflash 22.04.13
perhaps he needs a good ole whipping    

cron2 22.04.27
*whips dazo with lots of ACKs*
on strings 22.04.29
 
mattock_ 22.04.36
or "in strings"?        

novaflash 22.04.46
i am getting a very odd image here now
of cron2 in g-string 22.04.54
 
cron2 22.04.55
*doesn't want to know*  

novaflash 22.04.56
whipping dazo   

mattock_ 22.04.57
oh my, all of this will go to the mailing list  

dazo 22.04.58
jamesyonan: would it be possible to get you more visible on the -devel mailing 
list?  Like just giving "ACK" or "NACK" to patches which makes sense ... 
doesn't need to too often but a few times every month when there are some 
un-reviewed patches would help        

mattock_ 22.05.13
+1      

novaflash 22.05.18
mattock_: just delete everything i said then    

mattock_ 22.05.22
we've missed you
novaflash: the trust must not me tampered with 22.05.29
oops 22.05.32
truth 22.05.33
 
novaflash 22.05.42
mattock_: but that typo will MAGICALLY be repaired?     

mattock_ 22.05.46
no      

novaflash 22.05.50
heh     

jamesyonan 22.05.51
I think that's a good idea, I just need to scale better 

novaflash 22.05.54
okay good then. 

cron2 22.06.20
jamesyonan: you need to reimplement yourself using C++ and Boost, obviously     

mattock_ 22.06.22
jamesyonan: I think moving to 2.3 will help... raidz is running a test suite 
with 2.3-rc1 atm   

dazo 22.06.47
jamesyonan: I think we're fairly good now ... cron2 have done a good job 
reviewing stuff ... but I do know we have some stuff which needs to be reviewed 
for 2.4        

novaflash 22.06.55
mattock_: i got your test suite forwarded and am going to give it a shot too    

jamesyonan 22.06.56
no, I think I need to go quantum        

mattock_ 22.07.02
we need to communicate with the community devs using the "normal" methods to be 
effective       

dazo 22.07.05
(which is rather old stuff ... but I'll summarise it on a wiki first)   

mattock_ 22.07.33
the "weekly meeting with James" worked initially, but quite often it created 
lot of delay       

dazo 22.07.47
and I know plaisthos will come with some socket.c clean-up too  

novaflash 22.07.50
jamesyonan: remove your GPL license and let us fork you a couple of times so 
there's more of you to spread around       

mattock_ 22.08.30
there's also the option of stopping all the interesting side-projects?
I'm constantly struggling with that myself 22.08.43
22.08.48
 
dazo 22.09.21
*would like to reduce the openvpn side-project, so he could focus more on his 
own eurephia project *    

mattock_ 22.09.44
dazo: how's the openvpn linux gui side-project going?   

jamesyonan 22.09.44
it's easier for me to spend a couple hours a week with undivided attention than 
to multitask off-and-on into community discussions      

dazo 22.09.53
oh true
GUI programming is a mess 22.10.03
even GTK 22.10.11
 
novaflash 22.10.19
dazo is developing a gui for linux? awesome!    

dazo 22.10.32
I've took over the maintenance of gopenvpn 
the previous maintainer didn't have much time for it any more 22.10.46
 
jamesyonan 22.11.17
dazo: have you looked at SRP ( 
http://en.wikipedia.org/wiki/Secure_Remote_Password_protocol )?  

vpnHelper 22.11.18
Title: Secure Remote Password protocol - Wikipedia, the free encyclopedia (at 
en.wikipedia.org) 

cron2 22.11.40
dazo: is that a useful thing to have, gopenvpn, as to "make the integration in 
NM better" (as everybody seems to go to NM anyway)       

mattock_ 22.12.01
jamesyonan: we haven't had "classic" IRC meeting on Thursdays for a while, 
because things have worked fine without them 

dazo 22.12.31
cron2: NM is useful for "I just need one VPN tunnel" .... but I usually use 3 
in parallel, and gopenvpn is somewhat closer in behaviour to the Windows GUI 
.... using real config files 

cron2 22.12.56
dazo: ah, so NM cannot do multiple tunnels?  Indeed, that would be a good 
reason for "something better" 

dazo 22.13.12
jamesyonan: nope ... but that looks interesting (at least if I don't have to go 
to deep on the mathematics      

cron2 22.13.17
*is confused by graphical stuff*        

dazo 22.13.32
cron2: and if NM looses the wireless for a second ... it disconnects/stops all 
VPN tunnels      

mattock_ 22.13.36
jamesyonan: it'd be great if you could, say, check openvpn-devel list 2-3 times 
a week and then immediately close the email client      

dazo 22.13.43
that's my second big complaint about NM 

mattock_ 22.13.58
that strategy saves my nerves and improves my focus     

dazo 22.14.01
(to fix that, it seems the core NM needs to be reworked)        

cron2 22.14.15
mattock: and you compensate by hanging in IRC all day   

dazo 22.14.21
hehe    

mattock_ 22.14.27
well, yes... but I hate email more than I hate IRC
email => somebody wants me to do something 22.14.46
 
novaflash 22.14.55
as it appears that the main agenda points have been handled (unless our 
illustrious leaders indicate otherwise) i am going to go get some things sorted 
here and head off to bed.       

mattock_ 22.15.04
novaflash: good idea    

cron2 22.15.08
dazo: seems we really need to sit together with d12fk @FOSDEM to sort out the 
privilege separation / gui / service stuff
that should happen "soon" now... 22.15.16
novaflash: good night 22.15.24
 
mattock_ 22.15.36
and we should book the flights / hotels soon, before the prices start climbing 
up       

dazo 22.15.59
cron2: agreed ...  that's 2.4 material
and if jamesyonan will be present at FOSDEM ... it would be natural to gain 
from his experience there as well 22.16.30
 
mattock_ 22.16.39
oh, one more thing
I want to set a time when James comes here to be moved to wonderful world of 
Git and 2.3.x 22.17.01
jamesyonan: please pick a date and time 22.17.25
 
jamesyonan 22.17.46
yes, I do like git, but I'm still stuck with svn for now        

mattock_ 22.17.47
I can take care of the Git part, I've been dazo's apprentice
how do we get you unstuck? how can we help? 22.18.04
 
cron2 22.18.12
"rpm -e svn"    

jamesyonan 22.18.26
rpm: not found  

mattock_ 22.18.33
uh      

dazo 22.18.40
heh     

cron2 22.18.49
jamesyonan: now I think dazo will stop talking to you...!       

dazo 22.19.07
hmmmm   

jamesyonan 22.19.17
actually I use mac most of the time     

mattock_ 22.19.49
jamesyonan: next Thursday, same time, same place?       

jamesyonan 22.19.53
sure    

mattock_ 22.20.02
ok, excellent
I think we're done, then 22.20.18
any objections? 22.20.58
 
cron2 22.21.49
*is fine*       

jamesyonan 22.22.23
fine here       

ecrist 22.22.24
none from me    

mattock_ 22.23.07
nice!   

dazo 22.23.08
*is fine*       

mattock_ 22.23.25
ok, next meeting next week this time
I'll send a summary tomorrow 22.23.36
 
dazo 22.23.41
thx all!        

mattock_ 22.26.54
good night!
or midday, or whatever 22.27.00

Reply via email to