Finally a Network Manager for FreeBSD!

Can someone port Networkmgr from GhostBSD?
https://github.com/GhostBSD/networkmgr
Some screenshots!
Networkmgr.png


wifilogin.png


net.png
 
Yes but with this may I have bluetooth, network manager etc but also converts FreeBSD to a real PCBSD. Also the networkmgr is seems to have not a big list of dependencies. I tried this port for my Bluetooth and I had even update notification from PCBSD servers, pbi and a lot of tools that I don't need.
 
I am sure PC-BSD's network manager can be extracted from the port and be made to work standalone with a little effort. Less effort than polishing GhostBSD's network manager anyway.
 
Honestly; I'm not a big QT fan, which is why I've shied away from the PC-BSD version. I see the GHOST-BSD version uses GTK. I'll have a look. If it's not too big a conversion, I'll port it. I think it's a nice "convenience" package. :)

--Chris
 
For those who care, it's taking a little longer than anticipated to complete this.
The archive was corrupt, and I had to re-create the missing bits. I'll still be able to finish it today, just a little later than expected. I'll post back, when I'm done.

All the best.

--Chris
 
It's DONE!
OK for those who would like to try it out before it has been committed;
simply go to the PR link above, and download the attached shar(1) file, to /ust/ports/net-mgmt/. Cd to that directory, if you're not already there, and do the following:
sh ./network-manager.shar
rm ./network-manager.shar
cd ./network-manager/
make
make install clean

While I developed, and tested this on x11-wm/xfce4, it is currently better suited for the Gnome desktop. I'll need to add an Xfce4 plugin, so the controls show up in the Xfce4 taskbar. I would greatly appreciate your input on this. I would have implemented this port a bit differently, but decided to follow it's current implementation, and get user feedback, so I could see if everyone else ended up having the same thoughts as I.

Screenshots, anybody?
networkmgr-xfce4.png

This screenshot is on Xfce4. But I'll do some testing in Gnome, and maybe post a shot, or 2.

All the best!

--Chris
 
You're most welcomed, protocelt!

Please let me know how it works for you. It's still fairly early. So I expect the need to make changes, as the reviews come in. ;)

--Chris
 
Good day,

I am very interested in this.
uname -a
Code:
FreeBSD ugmm-2.router 10.1-RELEASE-p6 FreeBSD 10.1-RELEASE-p6 #0: Tue Feb 24 19:00:21 UTC 2015  root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
I use XFCE as my DE as well. I have copied over the file from the PR link as you instructed. (I used root account as I did this.)
I placed the file in the directory:

/usr/ports/net-mgmt.

I then ran:

sh ./network-manager.shar

rm ./network-manager.shar

Then I cd into the network-manager directory that was created:

cd ./network-manager

and then ran:

make

This is the following output from the initial make command:

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make
===>  License BSD3CLAUSE accepted by the user
===>  network-manager-0.9.0 depends on file: /usr/local/sbin/pkg - found
=> network-manager-0.9.0.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz
fetch: http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz: size mismatch: expected 21048, actual 21044
=> Attempting to fetch http://distcache.FreeBSD.org/ports-distfiles/network-manager-0.9.0.tar.xz
fetch: http://distcache.FreeBSD.org/ports-distfiles/network-manager-0.9.0.tar.xz: Not Found
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/ and try again.
*** Error code 1

So, I downloaded the distfile from your site http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz and manually placed it into the /usr/ports/distfiles/. Unfortunately, the distfile is not the same size as what is stated in the distinfo file in /usr/ports/net-mgmt/network-manager/
So I changed that from 21048 to 21044, and I ran:

make

and it reports

Code:
===>  Giving up on fetching files: network-manager-0.9.0.tar.xz
Make sure the Makefile and distinfo file (/usr/ports/net-mgmt/network-manager/distinfo)
are up to date.  If you are absolutely sure you want to override this
check, type "make NO_CHECKSUM=yes [other args]".
*** Error code 1

I did as instructed and ran:

make NO_CHECKSUM=yes

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make NO_CHECKSUM=YES
===>  License BSD3CLAUSE accepted by the user
===>  network-manager-0.9.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by network-manager-0.9.0 for building
===>  Extracting for network-manager-0.9.0
===>  Patching for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Configuring for network-manager-0.9.0
===>  Building for network-manager-0.9.0
===>  Staging for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Generating temporary packing list
(cd /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr && /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  /usr/sbin/chown -Rh root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 444 $1/{} \;' -- . /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/)
(cd /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/icons &&  /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  /usr/sbin/chown -Rh root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 444 $1/{} \;' -- . /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/pixmaps/networkmgr/)
/bin/cp /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.desktop /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/applications/
/bin/cp /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.desktop /usr/ports/net-mgmt/network-manager/work/stage/usr/local/etc/xdg/autostart/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/detect-nics.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/detect-wifi.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/enable-net.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/functions-networking.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/test-netup.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.py /usr/ports/net-mgmt/network-manager/work/stage/usr/local/bin/
====> Compressing man pages (compress-man)
if [ -d "/usr/ports/net-mgmt/network-manager/work/stage/usr/local/lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info" ]; then  /bin/ls /usr/ports/net-mgmt/network-manager/work/stage/usr/local/lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info | while read f; do  echo lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info/${f} >> /usr/ports/net-mgmt/network-manager/work/.PLIST.mktmp;  done;  fi;

it completed and then I ran:

make install clean

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make install clean
===>  Installing for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Checking if network-manager already installed
===>  Registering installation for network-manager-0.9.0
Installing network-manager-0.9.0...
===>  Cleaning for sudo-1.8.13
===>  Cleaning for network-manager-0.9.0

and it built, the icon does appear in the settings menu after the install, although it isn't the same icon as in your screenshot, but when I run it from the menu, it throws an error:

Code:
Failed to execute command "networkmgr".
Failed to execute child process "networkmgr" (Permission denied).

Hope I left feedback on this in the proper way and that I didn't make any mistakes. I am not sure if I added to much info, or not. Thank you for the effort you have put into this.

jda
 
Good day,

I am very interested in this.
uname -a
Code:
FreeBSD ugmm-2.router 10.1-RELEASE-p6 FreeBSD 10.1-RELEASE-p6 #0: Tue Feb 24 19:00:21 UTC 2015  root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
I use XFCE as my DE as well. I have copied over the file from the PR link as you instructed. (I used root account as I did this.)
I placed the file in the directory:

/usr/ports/net-mgmt.

I then ran:

sh ./network-manager.shar

rm ./network-manager.shar

Then I cd into the network-manager directory that was created:

cd ./network-manager

and then ran:

make

This is the following output from the initial make command:

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make
===>  License BSD3CLAUSE accepted by the user
===>  network-manager-0.9.0 depends on file: /usr/local/sbin/pkg - found
=> network-manager-0.9.0.tar.xz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz
fetch: http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz: size mismatch: expected 21048, actual 21044
=> Attempting to fetch http://distcache.FreeBSD.org/ports-distfiles/network-manager-0.9.0.tar.xz
fetch: http://distcache.FreeBSD.org/ports-distfiles/network-manager-0.9.0.tar.xz: Not Found
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/ and try again.
*** Error code 1

So, I downloaded the distfile from your site http://BSDforge.com/projects/source/net-mgmt/network-manager/network-manager-0.9.0.tar.xz and manually placed it into the /usr/ports/distfiles/. Unfortunately, the distfile is not the same size as what is stated in the distinfo file in /usr/ports/net-mgmt/network-manager/
So I changed that from 21048 to 21044, and I ran:

make

and it reports

Code:
===>  Giving up on fetching files: network-manager-0.9.0.tar.xz
Make sure the Makefile and distinfo file (/usr/ports/net-mgmt/network-manager/distinfo)
are up to date.  If you are absolutely sure you want to override this
check, type "make NO_CHECKSUM=yes [other args]".
*** Error code 1

I did as instructed and ran:

make NO_CHECKSUM=yes

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make NO_CHECKSUM=YES
===>  License BSD3CLAUSE accepted by the user
===>  network-manager-0.9.0 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by network-manager-0.9.0 for building
===>  Extracting for network-manager-0.9.0
===>  Patching for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Configuring for network-manager-0.9.0
===>  Building for network-manager-0.9.0
===>  Staging for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Generating temporary packing list
(cd /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr && /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  /usr/sbin/chown -Rh root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 444 $1/{} \;' -- . /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/)
(cd /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/icons &&  /bin/sh -c '(/usr/bin/find -d $0 $2 | /usr/bin/cpio -dumpl $1 >/dev/null  2>&1) &&  /usr/sbin/chown -Rh root:wheel $1 &&  /usr/bin/find -d $0 $2 -type d -exec chmod 755 $1/{} \; &&  /usr/bin/find -d $0 $2 -type f -exec chmod 444 $1/{} \;' -- . /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/pixmaps/networkmgr/)
/bin/cp /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.desktop /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/applications/
/bin/cp /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.desktop /usr/ports/net-mgmt/network-manager/work/stage/usr/local/etc/xdg/autostart/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/detect-nics.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/detect-wifi.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/enable-net.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/functions-networking.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr/test-netup.sh /usr/ports/net-mgmt/network-manager/work/stage/usr/local/share/networkmgr/
install  -o root -g wheel -m 555 /usr/ports/net-mgmt/network-manager/work/network-manager-0.9.0/networkmgr.py /usr/ports/net-mgmt/network-manager/work/stage/usr/local/bin/
====> Compressing man pages (compress-man)
if [ -d "/usr/ports/net-mgmt/network-manager/work/stage/usr/local/lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info" ]; then  /bin/ls /usr/ports/net-mgmt/network-manager/work/stage/usr/local/lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info | while read f; do  echo lib/python2.7/site-packages/network_manager-0.9.0-py2.7.egg-info/${f} >> /usr/ports/net-mgmt/network-manager/work/.PLIST.mktmp;  done;  fi;

it completed and then I ran:

make install clean

Code:
root@ugmm-2:/usr/ports/net-mgmt/network-manager # make install clean
===>  Installing for network-manager-0.9.0
===>  network-manager-0.9.0 depends on executable: sudo - found
===>  network-manager-0.9.0 depends on package: py27-setuptools27>0 - found
===>  network-manager-0.9.0 depends on file: /usr/local/bin/python2.7 - found
===>  Checking if network-manager already installed
===>  Registering installation for network-manager-0.9.0
Installing network-manager-0.9.0...
===>  Cleaning for sudo-1.8.13
===>  Cleaning for network-manager-0.9.0

and it built, the icon does appear in the settings menu after the install, although it isn't the same icon as in your screenshot, but when I run it from the menu, it throws an error:

Code:
Failed to execute command "networkmgr".
Failed to execute child process "networkmgr" (Permission denied).

Hope I left feedback on this in the proper way and that I didn't make any mistakes. I am not sure if I added to much info, or not. Thank you for the effort you have put into this.

jda
Thank you very much, jdakhayman, for the "heads up".
I had a lot going on that day, and apparently left the original DISTFILE (before making last minute changes), instead of the FINAL version.
I've just updated the file on the server. So if you try again, you'll get the correct one this time.

DO let me know, if you should run into any more issues. The current file I just updated on the server, is the one I used, and am running from. So you should have no more issues. :)

Thanks again, jdakhayman!

--Chris
 
Hi guys,

I cant seem to start the networkmgr:
Code:
# networkmgr
Traceback (most recent call last):
  File "./trayicon.py", line 3, in <module>
  import gtk
ImportError: No module named gtk

I understand that it has something to do with gtk, which cannot be started.

When I try to install it by pkg, it that says that newer version is already is installed.
Code:
# pkg install gtk2
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking integrity... done (0 conflicting)
The most recent version of packages are already installed

Same happens with gtk3

Is it possible to install the networkmgr by pkg?
 
Dear grub3r, it is a shot in the dark, but please check if you have x11-toolkits/py27-gtk2 installed.

EDIT: I have had a look what is imported by trayicon.py. The next step might be to check devel/py-gobject.

Hi chrgr,

And thanks for the pointers. There is no x11-toolkits/py27-gtk2 I installed py-gtk2 instead, maybe you meant that too :)

But when starting networkmgr by root this message appears:
Code:
# networkmgr
/usr/local/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
  warnings.warn(str(e), _gtk.Warning)

I'm running xfce 4.12 on:
uname -a
Code:
FreeBSD dmb-tech 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014  root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64

Thanks again
 
Last edited by a moderator:
There is no x11-toolkits/py27-gtk2 I installed py-gtk2 instead, maybe you meant that too
Yes, sure, sorry. If you seek in /usr/ports/INDEX-10 there is no py-gtk2 but py27-gtk2. But the port name is py-gtk2. This is strange but true.
When starting networkmgr by root this message appears:
As far as I root is not allowed to open X11 applications because of security issues. Please try to start networkmgr as regular user.

By the way, I do not know the details of the software and which files it handles, may be you have to add the user to the group wheel to have all the functions. On the other hand this has been no topic in the posts above.
 
Last edited by a moderator:
Nice, but IMO this is a hackish setup. The Linux / BSD desktop is worst than Frankenstein's monster. It's bloated, stinking, hacked together, an abomination with missing limbs and no orthogonality. Doing network management the proper way from GUI the proper way would require:

1. Restructuring parts as ifconfig(8) + wpa_supplicant(8) as a library, and use that.
2. Rethink the whole desktop paradigm in BSDs. All desktops I tried feel like Frankenstein's monster in Linux and BSDs. You need to start with the base OS before even writing a single line of graphical code to address this. This means:
- Writing an asynchronous message passing and notification facility in the base OS, pretty much like notifyd in MacOSx.
- Integrate said facility with devd(8) / autofs(5) / kevent(2).
- Maybe add to kernel another one more IPC mechanism -- Solaris doors or Windows NT like ALPC would be prime candidates IMO.
3. Restructuring other important system utilities as libraries, and make the command line tools just a shim above those libs is also important IMO. Prime candidates beside networking are user control, GEOM control, audio control, sharing control (NFS at least.)
4. Pay utmost attention to power management code in kernel and profile the user mode base system for power hungry pathway, isolate them and vanquish them out of the code.
5. Too much freedom of choice is bad. BSDs should in future absorb Wayland or X in the base and enforce a unique GUI toolkit and common controls. There is no other way unfortunately to ensure look and feel orthogonality on the desktop.

This doesn't mean destroying the "Unix (superpower) user experience (TM)" and everything Unix stands for. It just means that the 70s passed like 35 years ago :p BSDs should learn from Apple and MacOSX. IMO MacOSX is at the moment the best user experience one can have on desktop and laptops. Windows was easy and intuitive till Windows 8 when MS managed to ruin it somehow.
 
I am not sure if the networkmgr is already completely finished. Chris_H has ported it and provided a temporary solution which works for many users. I guess sooner or later it will appear in the ports and handle all dependencies well.

Regarding the FreeBSD concept I am really happy to have configuration files which are easy to be maintained, to be search through and to be backed up. Providing a GUI for everything with consitent look&feel seem to me only possible with huge effort and a strong management. Even most companies can not provide that. I have no idea how this should be possible in a world wide open software community.
 
I have no idea how this should be possible in a world wide open software community.

One big step ahead would would be Xorg and Wayland adopt a widget / com ctrl toolkit as part of their base source, stick with it, market it and groom it religiously. In fact, you can blame part of the lack of orthogonality and coherence on the desktop in the open source world to the very uninspired choice made by X developers many years ago to not enforce a toolkit on X user.

Another big step is to provide access to base OS function (GEOM, audio, user management, ifconfig(8), WPA, host management, time management and so on) as libraries, so front ends and frameworks can be easily written on top of that.

In fact, no CLI OS control utility in base should be anything but a shim over those libraries. It would save you from Frankensteined fragile GUI utilities like those network managers. This is doable inside each OS, but yeah, its a lot of work, because it implies designing APIs and making a commitment to those APIs.

And as much as I dislike the systemd way of doing things, as opposed to the MacOSX launchd or Solaris SMF I think the world needs more Lennarts. The guy at least managed to see the future clearly, as opposed to many who seem stuck in the 70s.
 
Greetings, All.
Sorry for the delay in responding to these posts. I'm doing some development work on cell phones. Which (UGH) required me to (temporarily) put Windows on my FreeBSD development box.
I know there's some additional "tweaking" left to do, to polish up this port. But, if used as described, it does work. As to the "root error" mentioned above. If you followed the instructions, you would have known to preface the starting of the application with sudo(8). This will provide the ability to communicate with the necessary system level bits, to talk to the system at such a low level. Which is required to make these types of system modification(s).

I also see lme@ (Lars) has proposed some changes. So I'll need to examine, and test those, as well.

Thanks for the feedback, and please take the time to read the messages, and docs provided, before calling this (work in progress) broken. Thanks!

--Chris
 
Last edited by a moderator:
Looks like the dependencies are not all listed. I am running a mostly stock system here with no python installs besides what xfce4 and some tools want to have. When trying to run the networkmgr, it simply quits and does nothing. Now before I hit you with several hundred KB worth of ktrace output, I will see if something jumps out at me, but it is some reading I need to do.
 
Nice, but IMO this is a hackish setup. The Linux / BSD desktop is worst than Frankenstein's monster. It's bloated, stinking, hacked together, an abomination with missing limbs and no orthogonality. Doing network management the proper way from GUI the proper way would require:

1. Restructuring parts as ifconfig(8) + wpa_supplicant(8) as a library, and use that.
2. Rethink the whole desktop paradigm in BSDs. All desktops I tried feel like Frankenstein's monster in Linux and BSDs. You need to start with the base OS before even writing a single line of graphical code to address this. This means:
- Writing an asynchronous message passing and notification facility in the base OS, pretty much like notifyd in MacOSx.
- Integrate said facility with devd(8) / autofs(5) / kevent(2).
- Maybe add to kernel another one more IPC mechanism -- Solaris doors or Windows NT like ALPC would be prime candidates IMO.
3. Restructuring other important system utilities as libraries, and make the command line tools just a shim above those libs is also important IMO. Prime candidates beside networking are user control, GEOM control, audio control, sharing control (NFS at least.)
4. Pay utmost attention to power management code in kernel and profile the user mode base system for power hungry pathway, isolate them and vanquish them out of the code.
5. Too much freedom of choice is bad. BSDs should in future absorb Wayland or X in the base and enforce a unique GUI toolkit and common controls. There is no other way unfortunately to ensure look and feel orthogonality on the desktop.

This doesn't mean destroying the "Unix (superpower) user experience (TM)" and everything Unix stands for. It just means that the 70s passed like 35 years ago :p BSDs should learn from Apple and MacOSX. IMO MacOSX is at the moment the best user experience one can have on desktop and laptops. Windows was easy and intuitive till Windows 8 when MS managed to ruin it somehow.
Frankenstein. Not hardly. But it seems you think BSD was/is not well suited for a "standard desktop" OS.
If so. I would agree. But, in fact; (Free)BSD was built (in the UNIX tradition) as a set of tools, to better accommodate nearly any need, and was mostly written with Server, in mind. As most of the contributions were made by Server administrators. And what good is a desktop, if there aren't/weren't Servers? Managing service(8)s on BSD platforms is quite trivial. There are a multitude of libraries; both for CLI, as well as GUI, to help leverage such things. In fact, the desktop (Xorg(1)) wouldn't even exist w/o them.
Frankly, I see little need, nor have any interest in seeing things change, or seeing any type of a massive restructuring, where any of the BSD's are concerned. Everything's already there. It's only a matter of getting to know where they are, and how they work, what they do.
To someone not fully immersed in the OS, (Free)BSD/Linux may well seem "Frankenstein-ish". :)
 
Back
Top