Re: Reworking the Network Configuration Libraries idea for laptop/desktop use
Gleb Popov <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.hackers |
|---|---|
| Message-ID | <CALH631nW-N-7BnZNJQR2eZDRkVv-8C0Gzd=ieoJCBSJS_VC_=Q@mail.gmail.com> |
On Sun, Mar 22, 2026 at 3:59 PM berke.nar <[email protected]> wrote: > > Would a project centered on a small network configuration library plus a simple CLI/TUI be considered useful? I do not see it useful. See below for explanations. > Would it be better to focus only on wireless profile management first, with VM/jail networking as a stretch goal? I think yes, we did the same at Future Crew. > Is there a preferred approach or existing work I should build on to avoid duplicating effort? Major DEs already ship UI components for network configuration. All these components use NetworkManager as a backend. In my opinion, the only sustainable way to make these UI components work on FreeBSD is to port/reimplement NetworkManager (or at least some parts of it). This will give us an opportunity to reuse KDE/Gnome frontends and is overall better than inventing the whole thing ourselves. We at Future Crew made a quick stab on porting NetworkManager, but it turned out to be too Linux-centered and quite a beast itself. Instead we ported Connman, which fills the same backend role as NM, but due to having an incompatible D-Bus interface, we had to write our own UI frontend. This is also not as easy task as it might seem, so while Connman worked for us short term, I believe the proper solution is to have NM implementation. > My goal is to contribute something genuinely useful to FreeBSD laptop and desktop users by working on the daily cases I encounter while I am using FreeBSD as a daily driver, while keeping the project realistic for GSoC and aligned with the current LDWG direction. My gut feeling is that the project is too large for GSoC. You'll need both decent D-Bus proficiency as well as domain-specific knowledge to implement a network configuration daemon. Right now I'm writing a systemd logind reimplementation in my free time and even with all the D-Bus programming skills I have, it is still an enormous amount of work. We also had GSoC students working on much simpler D-Bus daemons and none of these attempts resulted in a salvageable outcome. Getting back to NM, before starting a reimplementation it requires a bit of research work to answer the following questions: - What D-Bus interfaces do we need to implement exactly? It might be that we don't need all of them to get DE widgets work. - What components of the original NetworkManager can be ported and reused? - NM has a C API. Do we have possible consumers for it? As you can see, the amount of work here is incredible. It might make sense to constrain the scope of the GSoC project to writing a neat library only. Design a good API, implement it, write tests, so that if we later reach for NetworkManager, it'll be much easier.