Jump to content
Not connected, Your IP: 3.145.7.187
blueport26

Eddie development, roadmap question and some suggestions

Recommended Posts

Hello,

I have a question regarding community contributions to Eddie. Would you accept a code change from non-airvpn developer?
Long ago I've made a pull request fixing some minor visual issues that were bothering me. I see that they were not merged (pull request).

The second question. Is there any roadmap for the Eddie, ex. what changes/features are planned (does not have to contain dates, just a rough list; as a programmer myself I understand that it takes time to provide solutions and sometimes it's hard to estimate)?
To me the app looks a bit old compared to modern standards (on Windows and Mac) and I wanted to know if you're planning to address this in the future (I suspect that you're probably restricted by Mono framework (.NET) capabilities).
Feature wise it has anything you may want, plus some more :).

Best regards

Share this post


Link to post

In the past it was mentioned that Eddie 3 is planned, written in C/C++ on GTK, so .NET/Mono is no longer a dependency. Not sure if that plan is now Firecrest, the GUI for Bluetit, or if it's actually Eddie 3.


NOT AN AIRVPN TEAM MEMBER. USE TICKETS FOR PROFESSIONAL SUPPORT.

LZ1's New User Guide to AirVPN « Plenty of stuff for advanced users, too!

Want to contact me directly? All relevant methods are on my About me page.

Share this post


Link to post

Hi,

Makes sense now that the backend is rewritten in C++, ...it may be the plan to switch to GTK (UI) eventually.
I make a living as a C# (Winforms/WPF/Blazor) dev so it wasn't really hard for me. I like to look (out of curiosity) under the hood of the application if I know the language.
To be honest, when I was doing it I haven't though about code ownership at all. One weekend I pulled the repo (with beer in one hand) and corrected things that annoyed me.
Well, if the changes are worthy you can include them in future version without crediting me as an author (if it's not a legal problem). I don't care about building a GitHub commit history in that sense.
Let me know and I will remove the pull request on GitHub, whatever is decided. ;)

BR

Share this post


Link to post
12 hours ago, blueport26 said:

To be honest, when I was doing it I haven't though about code ownership at all.


Yeah, there are multiple types of devs. Some do care about their commit history.
 
12 hours ago, blueport26 said:

Well, if the changes are worthy you can include them in future version without crediting me as an author (if it's not a legal problem). I don't care about building a GitHub commit history in that sense.
Let me know and I will remove the pull request on GitHub, whatever is decided. 


I hope you're not addressing me with this as I'm not an AirVPN team member. I've got no influence on these types of decisions.

NOT AN AIRVPN TEAM MEMBER. USE TICKETS FOR PROFESSIONAL SUPPORT.

LZ1's New User Guide to AirVPN « Plenty of stuff for advanced users, too!

Want to contact me directly? All relevant methods are on my About me page.

Share this post


Link to post
@blueport26

The original plan was to write Eddie frontend in GTK#. According to when and IF Mono will be ported to Mac M1 based plans could change.

@OpenSourcerer
 
Quote

Sometimes your code is taken and included as AirVPN's code, the authorship effectively taken from you.


We were not aware of such incidents which are NOT acceptable for us, unless the author himself/herself told the developer to not be credited Can you please provide us with all the relevant information about the incident? We will investigate for sure.
 
Quote


Not sure if that plan is now Firecrest,


Firecrest will be a Qt based client of Bluetit. Before Firecrest, however, we want to implement a TUI mode for Goldcrest.

Kind regards
 

Share this post


Link to post

GTK seems like a good idea. It's more widespread than Mono, and probably more stable.
As for the Apple Silicon compatibility in Mono. It looks some work was already done (PR). No idea if it's native or only to support Rosetta.
I'm a big .NET fan myself. The language (C#) is really clear and productive, it has anything you may want like a good old swiss army knife. I'm waiting for the new framework (MAUI). It supposed to be cross platform with syntax similar to WPF (XAML) and targeting Android, iOS, MacOS and Windows.

Now on the philosophic ground. I saw many products where business decisions to rewrite the code ended up wasting millions of dollars - providing a inferior product. From the company I work for, to even MS.
I hope if there will be refreshed Eddie GUI, it will be as functional as the current version before it's released to public. This is one of the selling points for me as a 'power user' :)

Also, what's the point of having both a QT and GTK apps (both frameworks are cross platform), …speculating, will Eddie continue to be the feature rich version and Firecrest the simplistic one? :think:

Best regards 

Share this post


Link to post
1 hour ago, blueport26 said:


Also, what's the point of having both a QT and GTK apps (both frameworks are cross platform), …speculating, will Eddie continue to be the feature rich version and Firecrest the simplistic one? :think:

Best regards 


Hello!

Note that the original plan was about GTK#, not GTK, therefore Eddie's GUI would have remained anyway based on Mono..

All the AirVPN Suite for Linux and Hummingbird for Mac were born to provide a software completely unrelated to Mono. In Linux you also have a real daemon, Bluetit, capable to offer a strong basis to develop any AirVPN client, even from third-party developers. In the past third-party AirVPN clients developers faced the formidable barrier of the undocumented bootstrap servers and undocumented "manifest" file format. No more problems of that kind now, as you probably know if you have checked Bluetit developer's manual.

Kind regards
 

Share this post


Link to post

With the developer guide you just gave me an idea to write an unofficial GUI once MAUI framework is released with .NET 6 :D (as a practice) …well, unless I find time for it.
There may also be a problem because Hummingbird is not compiled for Windows. Time will tell.

Share this post


Link to post
@blueport26

That's correct, Hummingbird was not planned for Windows. In Windows, a software like Eddie running in the .NET framework makes perfect sense: the framework is pre-installed and perfectly integrated with the system. Lately, it also works better than Mono does in Linux or Mac.


Good luck with your GUI!

Kind regards
 

Share this post


Link to post
@OpenSourcerer
 
Quote

Sometimes your code is taken and included as AirVPN's code, the authorship effectively taken from you.


Please answer as Staff asked last Thursday. You made serious accusations publicly and now I want information substantiating the claims. Of course you are not forced to provide details in public if you don't wish so. Contact me or Staff in private if you prefer so, but do not stay silent because I want to go all through this issue, personally.

pj (AirVPN founder)
 

Share this post


Link to post
On 8/27/2021 at 6:46 PM, Staff said:

Hello!

Note that the original plan was about GTK#, not GTK, therefore Eddie's GUI would have remained anyway based on Mono..

All the AirVPN Suite for Linux and Hummingbird for Mac were born to provide a software completely unrelated to Mono. In Linux you also have a real daemon, Bluetit, capable to offer a strong basis to develop any AirVPN client, even from third-party developers. In the past third-party AirVPN clients developers faced the formidable barrier of the undocumented bootstrap servers and undocumented "manifest" file format. No more problems of that kind now, as you probably know if you have checked Bluetit developer's manual.

Kind regards
 

Little over five years ago, on 07/15/2016, (AirVPN's) Staff posted Eddie development update: (Announcement titled "Eddie 2.11beta available")

 
Quote
The current Eddie status: a message from the chief developer
     
    First of all, we apologize for the delay of this release.
     
    We are working on two different versions of Eddie: 2.x and 3.x.
     
    Eddie 3.x will have a new UI engine (also based on GTK+ under Linux, to drop Mono WinForms that are affected by a lot of unresolved bug) and a lot of new features. We plan to release Eddie 3.x soon, but it's not ready/stable yet, so we decided to port some of the new features back to Eddie 2.x edition.
    This was the cause of the delay: a lot of features are totally rewritten (for example the OpenVPN directives manager).
    We promise that next releases and bugfixes will be faster.


So, five years later and counting and the latest version/beta of Eddie is at 2.20 and still stuck atop that Mono blob (ported to Linux by a 3rd party and essentially left unmaintained an internet lifetime ago).

I was not aware of any "original plan" where "Eddie's GUI would have remained anyway based on Mono" and be based on GTK#...

However based on that development update by Staff back in July 2016 there was going to be a (Linux native) GTK+ GUI for "Eddie 3.x soon".


With all AirVPN development taking place behind the scenes there's little place for development discussions here in the forum so perhaps I'm merely poorly informed about the actual status of development.



 

Share this post


Link to post
14 hours ago, encrypted said:
However based on that development update by Staff back in July 2016 there was going to be a (Linux native) GTK+ GUI for "Eddie 3.x soon".

With all AirVPN development taking place behind the scenes there's little place for development discussions here in the forum so perhaps I'm merely poorly informed about the actual status of development.

Hello!

The intentions of Eddie chief developer remained intentions, unfortunately. However, getting rid of Mono blob was a task which has been accomplished in Linux and macOS.

The development lines for Linux have changed and the most important outcome has been the AirVPN Suite which features a fully documented, real daemon, an exclusive software with a complete reference manual which nobody has ever offered. Even Eddie Android edition, another important software which we released after 2016, does not require Mono for Android.

Development of Eddie Desktop edition on one side, and Eddie Android edition, OpenVPN3-AirVPN and AirVPN Suite on the other side, have been completely split. Different development cycles, teams and plans.

Bluetit also uses OpenVPN3-AirVPN library, a fork of the original OpenVPN 3 library which features very important improvements. OpenVPN3-AirVPN library, currently used by Eddie Android edition, Hummingbird in macOS and Linux, and Bluetit in Linux, has been another important development branch in the last years in AirVPN.

The AirVPN Suite offers an option to all Linux users to completely drop Eddie and Mono.

You can follow the "News" forum for all the information and announcements.

AirVPN Suite User's Documentation: https://airvpn.org/suite/readme/
Bluetit Developer's Reference Manual: https://gitlab.com/AirVPN/AirVPN-Suite/-/blob/master/docs/Bluetit-Developers-Reference-Manual.pdf

OpenVPN3-AirVPN library (108 commits ahead of the main branch currently): https://github.com/AirVPN/openvpn3-airvpn

Kind regards
 

Share this post


Link to post
22 hours ago, pj said:

Please answer as Staff asked last Thursday. You made serious accusations publicly and now I want information substantiating the claims. Of course you are not forced to provide details in public if you don't wish so. Contact me or Staff in private if you prefer so, but do not stay silent because I want to go all through this issue, personally.


AirVPN is not at fault, the error was purely mine. Here goes the explanation sent via private mail:
 
Quote
I removed the accusations. I think I unintentionally fell for the cherry-picking fallacy there, and needed some time to understand that. I'm sorry for any inconvenience I might have caused.

I was looking at PR #27 as an example and seemingly found the PF code in NetworkLockOsxPf.cs, concluding it's in the main code. What I believe I didn't see is that I was viewing the committer's repo, where git blame correctly showed iZsh as author of the code while in main the lines around that code are authored by AirVPN/clodo (look quite similar but are not the ones in the commit). So I concluded that, because the commit was closed, AirVPN took the code and closed the PR. It did not occur to me that the PR was closed because it simply wasn't accepted – classic example of seeing what I expected to see. That's why I didn't find it in git log, but that only further fueled my suspicion that it was git commit --squashed (though, wouldn't that still bear the same commit hash?).
.

NOT AN AIRVPN TEAM MEMBER. USE TICKETS FOR PROFESSIONAL SUPPORT.

LZ1's New User Guide to AirVPN « Plenty of stuff for advanced users, too!

Want to contact me directly? All relevant methods are on my About me page.

Share this post


Link to post

I appreciate the basic summary of current development status of various AirVPN projects.


I merely wished to point out that back in 2016 users were informed that there would "soon" be a native (i.e. much lighter and more secure) GTK-based Eddie GUI (the "control panel" for common standard OpenVPN services) to replace the functional but monstrous MONO blob.


Five years on and instead of that native GTK Eddie GUI the Linux users can have either

1) good old Eddie .point updates atop that monstrous MONO blob (no more major stability issues though); alternatively with "hummingbird" backend for AirVPN's own OpenVPN fork implementation

2) the "AirVPN suite" consisting of *no Eddie-like GUI* but instead there are command-line binaries and config files to manage AirVPN's own divergent/semi-proprietary "OpenVPN-like" ecosystem.


I wonder if either of these two existing options could be characterized as "best of both worlds".

Instead of delivering that expected (GTK-based) native GUI, the AirVPN team(s) went on to spend the next five years to build their own fork of an entire ecosystem instead. 😲
Of course there has been many user-friendly advances like Android and iOS GUIs, chacha20 support etc. that are valuable to your userbase, but that's not what I read on the tin those years ago.


Share this post


Link to post
3 hours ago, encrypted said:

2) the "AirVPN suite" consisting of *no Eddie-like GUI* but instead there are command-line binaries and config files to manage AirVPN's own divergent/semi-proprietary "OpenVPN-like" ecosystem.


AirVPN forked OpenVPN3 because it didn't want to sign the CLA stating contributions could be relicensed at any time for example. AirVPN does pull OpenVPN3 commits from upstream, though, so that, while it is a fork, it's not far from upstream, besides AirVPN's own additions and fixes. The lib can be used to compile the official OpenVPN3 reference client (though I didn't try it) and be used just like upstream.

I do agree that it's an oddity to develop pre-releases more or less behind closed doors, even if all AirVPN software releases are made open source again. It is true, publishing a beta for testing makes it de-facto closed source because when providing such a beta I did not get the source code used to reproduce the version I'm running, either through a network server or by physical means. Might be a violation of Section 6 of the GPL, stating that object code form may be published provided its source code is published alongside it in one of the stated ways (as written, physical copy, network server, etc.). There is no mention of special sections for software in public or private testing. The violation would be void if AirVPN offered the download to those who paid (sec. 6d) but this also implies that the source code is to be provided without further charge.
IANAL btw.

NOT AN AIRVPN TEAM MEMBER. USE TICKETS FOR PROFESSIONAL SUPPORT.

LZ1's New User Guide to AirVPN « Plenty of stuff for advanced users, too!

Want to contact me directly? All relevant methods are on my About me page.

Share this post


Link to post
5 hours ago, encrypted said:

I appreciate the basic summary of current development status of various AirVPN projects.


Thank you for your feedback!

Quote


2) the "AirVPN suite" consisting of *no Eddie-like GUI* but instead there are command-line binaries and config files to manage AirVPN's own divergent/semi-proprietary "OpenVPN-like" ecosystem.


It's a superior solution but it's not limited to "command line-binaries". Surely you have totally missed what Bluetit does. Read the documentation to understand more.

On another subject, divergent from what? Maybe you don't realize that when we took OpenVPN3 it could not even run in Linux. No alternative was available, even for the reason explained by @OpenSourcerer There is no divergence, at least not in the wicked sense you mean. Read on to understand why, on top of OpenSourcerer considerations.

Quote

Instead of delivering that expected (GTK-based) native GUI, the AirVPN team(s) went on to spend the next five years to build their own fork of an entire ecosystem instead. 😲 


No doubts that a GTK based interface has not been delivered for Eddie, and no doubts that it was a promise by Eddie chief developer which was not fulfilled, mainly because Eddie was split between frontend and backend (with the backend entirely rewritten in C++ to make it free from Mono), and because the Linux and Mac sofrtware have been re-considered for Qt, which we now consider more efficient than GTK and available in other systems we're interested in (macOS, FreeBSD). Firecrest (another client for Bluetit) plans include Qt and not GTK

However, it's not true that the new development team (i.e. the one not working on Eddie desktop) spent five years for a fork, obviously. The total work on the fork so far can be summed up to just a few months in total during all the years.

We do not see any "divergence" either, since OpenVPN3-AirVPN maintains full compatibility with OpenVPN 2.2 servers and higher versions, including OpenVPN 2.5. It also maintains full compatibility with profiles and directives according to OpenVPN 2 branch. We were careful not only to comply to the new OpenVPN 2.5 requirements, but even not to hurt backward compatibility with servers running older OpenVPN versions. So all the software can be used to connect to any OpenVPN based system, not only AirVPN: no divergence, no isolated ecosystem.

Between 2018 and 2021, i.e. three years and a half and not five, OpenVPN3 rewrite in several parts to make it work properly has been a fraction of the work:
  • Eddie Android edition was totally rewritten to get rid of Mono completely
  • seven Eddie Android edition versions were released
  • five Hummingbird versions were released,
  • three Bluetit and Goldcrest versions were released
  • Hummingbird has been ported to macOS
  • the (in our opinion outstanding) Bluetit Developer's Reference Manual has been written
  • some more work behind the scenes has been accomplished. In particular, careful Bluetit engineering and development has been rewarded by a software (incidentally a real daemon), which was never seen before in the OpenVPN clients world.
  • OpenVPN3 by AirVPN is 108 commits ahead of the main branch, the library works very well in Linux and obeys to OpenVPN 2.5 server new options and handshake requirements, a thing that can't be said of the main branch, at least up to a few months ago.

The delay of a GTK based GUI for Eddie has triggered a variety of new projects that have brought to Linux and Android users superior solutions never offered before by anybody, so at the end of the day Linux and Android users have had something much better and more will come.

Kind regards

Share this post


Link to post
2 hours ago, Staff said:

Thank you for your feedback!

You're most welcome!

As the point I was trying to make was primarily about the "RSN" native Linux GUI...
Quote
No doubts that a GTK based interface has not been delivered for Eddie, and no doubts that it was a promise by Eddie chief developer which was not fulfilled, mainly because Eddie was split between frontend and backend (with the backend entirely rewritten in C++ to make it free from Mono), and because the Linux and Mac software have been re-considered for Qt, which we now consider more efficient than GTK and available in other systems we're interested in (macOS, FreeBSD). Firecrest (another client for Bluetit) plans include Qt and not GTK

As someone who was pining for that native GUI all those years ago, this appears to be addressing my issue, although somehow the statement is somewhat vague.

You have re-considered, and now consider Qt to be more suitable for the frontend instead of GTK.

Cool, cool. It is kind of neat to have some idea where the intended future direction is instead of simply waiting for the canned one.

Thank you for the info! 😉



And thanks @blueport26 for bringing this up.

Share this post


Link to post
7 hours ago, OpenSourcerer said:

AirVPN is not at fault, the error was purely mine. Here goes the explanation sent via private mail:
.

@OpenSourcerer

Thank you very much, it's much appreciated, peace of mind for me, Eddie's developer and the readers.
Quote

I do agree that it's an oddity to develop pre-releases more or less behind closed doors,


Why? It's quite a common modus operandi in non-cooperative projects, where cooperation is between different parts of the same company and not from the outside world. Not to say that in the future our developers will not choose a different, totally cooperative approach for software engineering, but currently it's not so.
Quote


Might be a violation of Section 6 of the GPL, stating that object code form may be published provided its source code is published alongside it in one of the stated way


AirVPN licenses to you, the end user, a software according to the terms of some license granting you certain rights and certain obligations and so on. This license does not bind the licensor or author to keep the same license for any future software or work of the intellect in general. Normally we pick GPLv3 as a new software stable release and not for testing versions.

By the way, don't worry, if AirVPN infringes AirVPN rights, I will make sure to have AirVPN sue AirVPN and force AirVPN to pay and compensate any damage to AirVPN. 😎

@encrypted
Quote

As someone who was pining for that native GUI all those years ago, this appears to be addressing my issue, although somehow the statement is somewhat vague. You have re-considered, and now consider Qt to be more suitable for the frontend instead of GTK.

Cool, cool. It is kind of neat to have some idea where the intended future direction is instead of simply waiting for the canned one.


Trust me, Goldcrest TUI as well as another Bluetit client based on Qt in Linux and FreeBSD will be sweeter and faster than any Eddie frontend, be it in GTK# or GTK, because the engine inside/behind is so different.

By the way... I am rather sure that in the News forum the Staff account, and/or even myself writing with the same Staff account, clearly drew the new plans for Linux quite some time ago, well before the pandemic... Whatever, I'm sorry if you waited years for broken promises of some GUI. Now you know the brutal truth 😁, and on our side we need delivering new software within an equitable time but without lowering the quality and flexibility we could reach with Bluetit: so, we should keep the pace we have followed with the whole AirVPN Suite and OpenVPN3, which is not bad. When it's ready, starting with Goldcrest TUI mode (based on ncurses), let's talk again and see.

pj

Share this post


Link to post

I, for one, appreciate your acerbic wit.

Some GUI, any GUI of relative nativity, will be most appreciated whenever we are deemed ready to receive such. Qt or a blessed ncurses TUI.

Curses were all the rage in the nineties and I can barely contain my excitement.

Well, the curiosity is genuine. And sorry I missed all the published (and updated) roadmap revelations.

"Better late than never" is just what we patient optimists like to hear. 😉


Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Security Check
    Play CAPTCHA Audio
    Refresh Image

×
×
  • Create New...