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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.