<div dir="ltr"><div dir="ltr">Okay, so there is a lot to digest here and a lot of misinformation.  I'm not going to address all of it, only things relating to Ravenports.</div><div dir="ltr"><br></div><div dir="ltr">> Would it be possible to compile ravenports with clang, flang and<br>gnat-llvm? The only reason I think it will fail is, again, a lack of<br>gnat for gnat-llvm. Also,<br><a href="https://sourceforge.net/projects/hacadacompiler/" rel="noreferrer" target="_blank">https://sourceforge.net/projects/hacadacompiler/</a> might be of use to<br>you... if you have an ada compiler. It's under an MIT license and might<br>work too, I guess.<br><div><br></div><div>Where is this question coming from? </div><div>By design, Ravenports has a specific ports compiler for all platforms, which is currently gcc 11.2.0.  This includes gnat and fortran.  The ports compiler is a key design feature of Ravenports, so the question above doesn't make a lot of sense to me.  Some ports do use clang though, but it's used a port dependency in those specific cases.</div><div><br></div><div>> The docs are not finished, I get it, but the help command + quickstart<br>guide were sufficient to figure out basic usage.<br>1. The last pre-built image I was able to find for ravenadm is for<br>Dragonfly 5.8.<br>2. When I try to compile any package with ravenadm build, only the error<br>message about needing to rebuild ravenadm or update the ravenports<br>package pops up.<br>3. So I decided to build ravenports from source. And... I can't do that<br>because gnat is not available in repos. I am stuck. I have to compile<br>gnat, but since gnat requires an older version of gnat to work, I can't<br>compile it.<br></div><div><br></div><div>So 6.2 packages were produced recently, but I reviewed the quickstart guide and realized that there is no way for somebody to realize that.  I inserted a new step, <a href="https://github.com/Ravenports/Ravenports/wiki/quickstart-df#quickstep-3-determine-latest-available-repository">https://github.com/Ravenports/Ravenports/wiki/quickstart-df#quickstep-3-determine-latest-available-repository</a> , to show how to determine the latest repository and how to set ravensw to use it.</div><div>Ravenports is essentially a binary repository and there's almost no reason to build from source.</div><div>The only real reason is to use some non-default build options.    All the questions above are based on some misunderstanding.  Hopefully my wiki addition helps clear that up.</div><div><br></div><div>John</div><div><br></div></div><div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 21, 2022 at 11:09 AM <unix-enjoyer@tilde.institute> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello. I decided to try out DragonflyBSD as a desktop system, and had a<br>
lot of problems. If you want to know why I decided to try Dragonfly<br>
specifically, read the next paragraph, otherwise, skip.<br>
Windows is not an answer for me because the last reasonable version was<br>
7. After that, the design was unbearable. 7 is now unsupported by most<br>
software. Besides, I'm not willing to fight proprietary software anymore<br>
after I learned about Linux. Linux distributions also have a share of<br>
design problems, which led to me switching from Linux Mint to Debian,<br>
Garuda and finally Void. What happened in all cases: my programs just<br>
broke after unfortunate package management. I wasn't surprised since I<br>
knew that most of this code was not written to be good and stable. It<br>
was to get paid by Redhat/Google/Microsoft/any other corporate Linux<br>
contributor. By that point I was sick of the same corporations that<br>
control Windows controlling my Linux boxes and decided to trade Wine and<br>
inconsistent Linux interfaces for security, cli minimalism, stability<br>
and documentation of OpenBSD. It works just fine. I was a little sad<br>
that virtualisation is limited to single-core with serial console.<br>
FreeBSD also looked like an interesting alternative, though I have heard<br>
horror stories about desktop usage + I'm paranoid about OpenSSL<br>
security, in light of Heartbleed and this recent bug which also affects<br>
everybody. Once I learned more about Dragonfly, I figured that this<br>
might just be a perfect fit for my usecase. I live in an area where<br>
short power outages just happen, and you have to cope with it. Hence why<br>
I use an additional battery-powered power supply just in case. However,<br>
my main PC power supply  sometimes fails, soon to be replaced. The<br>
usefulness of CoW hammer2 (or ZFS/btrfs/bcachefs on Linux) is obvious.<br>
Program snapshots would allow me to put simple programs like mupdf to<br>
disk to easily continue my reading/watching/editing session when I want<br>
to. I tend to prefer very basic programs after all of the bad experience<br>
I had with complicated ones. Virtualisation will allow me to play some<br>
of my favourite games, I'm not interested in AAA. A little sad that Wine<br>
isn't ported yet, but not a big deal. LibreSSL in base provides at least<br>
some network security, even though ports still use OpenSSL (surprised<br>
that ravenports have an option of compiling everything with LibreSSL).<br>
So, what's up with the title?<br>
I have two devices I tried Dragonfly on. Both attempts failed to meet my<br>
requirements of being a stable desktop. A reasonably good browser that<br>
doesn't spy on me like chromium or default firefox, mpv video player, a<br>
terminal emulator, and a vis text editor is all I need for my everyday<br>
existense. I prefer vis to (neo)vim or regular vi because it's just much<br>
less complicated for me to use. Structular regular expressions are more<br>
comfortable than macros for me. Anyway, let's start with the first<br>
attempt, which I assumed to be a success at first.<br>
Dell Inspiron 3542 with 2 core Haswell Pentium 1.4 GHz, 4GB RAM,<br>
1366x768 IPS screen (replacement for the old dead one), 128 GB SSD in<br>
the main slot + 512 GB HDD on rails in the CD slot. No dGPU, dead<br>
battery.<br>
The installation went ok. Although the installer is not very flexible,<br>
e.g. I had to mount my HDD in my home directory after installation, but<br>
that's a non-issue for me.<br>
1. Docs (<a href="https://www.dragonflybsd.org/docs/handbook/X/" rel="noreferrer" target="_blank">https://www.dragonflybsd.org/docs/handbook/X/</a>) don't explain<br>
that I need to install and enable appropriate graphics drivers in<br>
/etc/rc.conf (the "outdated" page does half of the job, explaining the<br>
need for installing drivers, but failing to mention rc config<br>
<a href="https://www.dragonflybsd.org/docs/how_to_get_to_the_desktop/#index7h3" rel="noreferrer" target="_blank">https://www.dragonflybsd.org/docs/how_to_get_to_the_desktop/#index7h3</a>).<br>
They also don't explain how to enable mouse, and that my user should be<br>
in the video group. They don't point me to the appropriate manpages or<br>
FreeBSD documentation.<br>
2. At least both the touchpad and the built-in (PS/2?) keyboard worked.<br>
However, USB mouse & keyboard didn't work in Xorg regardless of moused,<br>
devd, or udevd being enabled. In console, USB keyboard works just fine,<br>
however.<br>
3. Xorg has a long startup (about 5-8 seconds). I stare on a black<br>
screen for a while instead of doing something. I still have no idea why<br>
this is the case. I see no error messages in logs.<br>
4. I can't switch to the console with the usual Ctrl+Alt+n, where n is<br>
the tty I wish to switch to.<br>
5. Qutebrowser starts slowing down after one or two restarts, and<br>
crashes randomly.<br>
6. Netsurf browser crashes when I go into Edit/Settings.<br>
7. Otter browser crashes for unknown reasons.<br>
8. xterm starts slowing down after restarts.<br>
9. htop reports wrong cpu usage. Over 9000% wrong, actually. It was<br>
pretty amusing to watch, but it doesn't provide any useful information<br>
now that the percentages are screwed.<br>
10. Something I don't understand in BSD's is why the vis(1) program<br>
needs to be on my hard drive and not in ports. Not a big deal, it's one<br>
rm command away from being fixed for me.<br>
11. So I tried to compile vis-the-editor<br>
(<a href="https://github.com/martanne/vis" rel="noreferrer" target="_blank">https://github.com/martanne/vis</a>) from source. It failed to find curses<br>
even though ncurses was explicitly installed. So I built it without<br>
curses. I receive a lot of epileptic flashing when I edit anything in<br>
xterm, but overall the program works ok.<br>
After declaring the initial testing on this laptop a relative success<br>
(at the time I thought I fixed qutebrowser by fiddling with it's config<br>
file), I decided to install Dragonfly on my main PC: Intel Ivybridge<br>
Xeon, 4 cores/8 threads, 12 GB RAM, Radeon RX 580, 512 GB SSD + 1 TB<br>
HDD, 2 1920x1080 displays.<br>
1. In console, USB keyboard worked fine. When I later tried my PS/2<br>
keyboard, it could only produce some weird sequences (^A, >, etc.) and<br>
nothing more.<br>
2. Xorg said no. No matter what input device I try, nothing can be used<br>
in Xorg. At first I thought that it just hangs my GPU, but no, that<br>
wasn't the case. Tried cwm and wmii, and noticed that in wmii, the panel<br>
still displays stats and time in realtime, so that's how I know. <br>
3. Wayland is unusable on both devices. It stays there (just like Xorg<br>
the first few seconds), but can't start due to some DRM error I can't<br>
catch because it doesn't go into stderr, so redirecting it to a file is<br>
not possible. I suppose I could record the process, but I have to have a<br>
stable desktop to do it first, right? Tried hikari and wayfire.<br>
4. Arcan is outdated and also unusable on both devices. The issue seems<br>
similar to Wayland. I would prefer to use Arcan over Wayland & Xorg if<br>
it worked. It looks like future technology to me. I think embracing the<br>
project might even help with some of your code bounties. Later about<br>
that.<br>
After experiencing these problems (which forced me to poweroff with a<br>
button on my motherboard an uncomfortable amount of times) I decided to<br>
compile my own kernel & packages from dports.<br>
Kernel upgrade worked fine, and changed nothing. I can post my config if<br>
you're interested.<br>
1. When compiling Dports in console, packages have broken menus that<br>
hide options. You have to press arrow keys to inspect all of the options<br>
because they get crammed in one tiny spot, and long descriptions can't<br>
be read. Sometimes the issue resolves itself and packages display their<br>
options properly, but most of the time it's broken and unreadable.<br>
2. Searching for a particular port proved tedious. On OpenBSD, it was as<br>
simple as "make search".<br>
3. No matter what I tried to compile, be it xorg, wayland or arcan, I<br>
had to rmconfig-recursive because something broke. Is there a better way<br>
of handling my unfortunate choices? Reconfiguring my stuff every time is<br>
very tedious and a lot of packages tend to break.<br>
With no luck in dports, I tried ravenports.<br>
The docs are not finished, I get it, but the help command + quickstart<br>
guide were sufficient to figure out basic usage. <br>
1. The last pre-built image I was able to find for ravenadm is for<br>
Dragonfly 5.8. <br>
2. When I try to compile any package with ravenadm build, only the error<br>
message about needing to rebuild ravenadm or update the ravenports<br>
package pops up. <br>
3. So I decided to build ravenports from source. And... I can't do that<br>
because gnat is not available in repos. I am stuck. I have to compile<br>
gnat, but since gnat requires an older version of gnat to work, I can't<br>
compile it.<br>
I suspect that building stuff with llvm might resolve some of my<br>
compilation problems, a more modern compiler ~ better compatibility,<br>
especially with freebsd ports which are compiled with clang after all.<br>
After getting angry at constantly crashing browsers, extremely slow<br>
xterm and epileptic editor, I switched my laptop back to OpenBSD and<br>
currently write this email on it.<br>
I have some questions:<br>
1. Why an outdated gcc instead of a recent llvm in base? gcc 8.5 was<br>
discontinued a year ago, and you use 8.3. llvm is not that big of an<br>
improvement in terms of code size (still millions of loc), but it is an<br>
improvement in design and licensing compared to historical inconsistency<br>
of gcc. I suspect that at least some of my problems come from outdated<br>
toolchain which you use for unknown reasons.<br>
2. Would it be possible to compile ravenports with clang, flang and<br>
gnat-llvm? The only reason I think it will fail is, again, a lack of<br>
gnat for gnat-llvm. Also,<br>
<a href="https://sourceforge.net/projects/hacadacompiler/" rel="noreferrer" target="_blank">https://sourceforge.net/projects/hacadacompiler/</a> might be of use to<br>
you... if you have an ada compiler. It's under an MIT license and might<br>
work too, I guess.<br>
3. Is tcplay dead or just resting? Last update on github was 2.5 years<br>
ago. I would be interested in TrueCrypt compatibility mentioned on your<br>
website, some of those crypto algorithms seem to hold up well enough for<br>
decades.<br>
4. nouveau port anytime soon? I don't know why only NetBSD bothered to<br>
do it out of all BSD's, users of old-ish nvidia cards are still common<br>
in desktop space, at least.<br>
5. tickless kernel anytime soon? energy efficiency suffers, performance<br>
in virtualisation also suffers.<br>
While waiting for my -j1 llvm15 compilation to fail, I skimmed through<br>
your code bounties, and have some suggestions:<br>
1. usb webcam support & utf8 in console<br>
both of those are solved in Arcan. See Arcan console<br>
(<a href="https://arcan-fe.com/2018/10/31/walkthrough-writing-a-kmscon-console-like-window-manager-using-arcan/" rel="noreferrer" target="_blank">https://arcan-fe.com/2018/10/31/walkthrough-writing-a-kmscon-console-like-window-manager-using-arcan/</a>)<br>
and libuvc, Arcan's dependency (<a href="https://github.com/libuvc/libuvc" rel="noreferrer" target="_blank">https://github.com/libuvc/libuvc</a>).<br>
Durden (<a href="http://durden.arcan-fe.com/" rel="noreferrer" target="_blank">http://durden.arcan-fe.com/</a>) is able to emulate the behaviour of<br>
most traditional desktop environments. Pipeworld<br>
(<a href="https://arcan-fe.com/2021/04/12/introducing-pipeworld/" rel="noreferrer" target="_blank">https://arcan-fe.com/2021/04/12/introducing-pipeworld/</a>) is a<br>
spreadsheet-shell-like zoomable window manager. Safespaces<br>
(<a href="https://arcan-fe.com/2018/03/29/safespaces-an-open-source-vr-desktop/" rel="noreferrer" target="_blank">https://arcan-fe.com/2018/03/29/safespaces-an-open-source-vr-desktop/</a>)<br>
is a 3D & VR environment. These are lua scripts wrapped around an engine<br>
developed for 15+ years. Letoram (main developer) is very interested in<br>
userspace drivers, and already implemented cross-platform VR,<br>
streamdeck(<a href="https://arcan-fe.com/2019/10/30/interfacing-with-a-stream-deck-device/" rel="noreferrer" target="_blank">https://arcan-fe.com/2019/10/30/interfacing-with-a-stream-deck-device/</a>), and USB video drivers. Arcan provides a stable alternative to Xorg and Wayland while keeping compatibility with them through arcan-wayland and<br>
xarcan. What I want to say is that there is an intersection between your<br>
goals and Arcan:<br>
- Migration of drivers to userspace<br>
- Plan 9-like namespaces with your nullfs union mounting & remote<br>
  hammer2 mounting, Arcan's network transparency, cfgfs & durden<br>
  filesystem menu<br>
  - Compatibility through virtualisation with nvmm, arcan's qemu<br>
    frontend, arcan-wayland, xarcan.<br>
    An interesting sidenote: the first desktop environment for Arcan was<br>
    influenced by Amiga's UI (scroll to the bottom of<br>
    <a href="https://arcan-fe.com/videos/" rel="noreferrer" target="_blank">https://arcan-fe.com/videos/</a>). You all know what Dillon was working<br>
    on in the 80's.<br>
    Both you and Arcan might benefit from cooperation, and you certainly<br>
    have similarities.<br>
<br>
2. userspace vkernel on other os's<br>
    cosmopolitan libc (<a href="https://github.com/jart/cosmopolitan" rel="noreferrer" target="_blank">https://github.com/jart/cosmopolitan</a>) allows C to<br>
    run on unices & windows. The amount of implemented syscalls is<br>
    limited, but I think that's the best option you have right now.<br>
    3. reducing boot time<br>
    I suggest to move on from single-core synchronious rc boot scripts<br>
    to an asynchronius service manager: s6-rc<br>
    (<a href="https://www.skarnet.org/software/s6-rc/" rel="noreferrer" target="_blank">https://www.skarnet.org/software/s6-rc/</a>). It starts services in<br>
    parallel instead of one after another. It provides dependency<br>
    management in case some services depend on others. It does not wake<br>
    up every couple of seconds, so energy efficiency should increase<br>
    too. Service scripts can be written in any scripting language, so<br>
    migration shouldn't be a problem for anybody who still uses shell<br>
    scripts instead of systemd.<br>
    The rest of <a href="http://skarnet.org" rel="noreferrer" target="_blank">skarnet.org</a> software might be of interest to you if you<br>
    ever needed secure implementations of network utilities,<br>
    non-interactive alternative to /bin/sh, small portable unix-ish<br>
    utilities, or a portable systems programming C library that doesn't<br>
    suck as much as others do.<br>
    That's all, I wait for help & answers. I can transfer whatever logs<br>
    you need using USB flash. I would like to have a functional<br>
    DragonflyBSD desktop on my main PC, but if it's not possible, I will<br>
    move on with my life.<br>
</blockquote></div></div>